/// <summary> /// Инициализирует новый экземпляр с указанием периодичности запуска в указанное значение перечислителя времени /// с соответствующим временным диапазоном запуска. /// </summary> /// <param name="period">Период.</param> /// <param name="occursType">Значение перечислителя времени.</param> /// <param name="startAt">Начальное значение диапазона запуска.</param> /// <param name="stopAt">Конечное значение диапазона запуска.</param> public TimeSpanFrequency(int period, RhythmByTime occursType, TimeSpan startAt, TimeSpan stopAt) : this() { _period = period; OccursEvery = occursType; StartingAt = startAt; EndingAt = stopAt; }
private string GetName(RhythmByTime id) { switch (id) { case RhythmByTime.Seconds: return("секунд"); case RhythmByTime.Minutes: return("мин"); case RhythmByTime.Hours: return("ч"); default: return("ч"); } }
/// <summary> /// Возвращает ключ локализуемого ресурса, пременимый к текущему условию склонения типов времени. /// </summary> /// <param name="rhythm">Склоняемый тип времени.</param> /// <param name="value">Значение склоняемого типа.</param> /// <returns>Ключ объекта локализации.</returns> public static string DeclinableForTimes(RhythmByTime rhythm, int value) { if (value > 100 || value < 0) { throw new ArgumentOutOfRangeException("value", @"Parameter value must between 1 to 100."); } int part = value > 20 ? value % 10 : value; switch (rhythm) { case RhythmByTime.Hours: return(part == 1 ? "час" : (part > 4 ? "часов" : "часа")); case RhythmByTime.Minutes: return(part == 1 ? "минуту" : (part > 4 ? "минут" : "минуты")); case RhythmByTime.Seconds: return(part == 1 ? "секунду" : (part > 4 ? "секунд" : "секунды")); } return(string.Empty); }
/// <summary> /// Инициализирует новый экземпляр с заданной периодичностью выполнения и типом времени, неограниченную по времени запуска. /// </summary> /// <param name="period">Период.</param> /// <param name="occursType">Значение перечислителя времени.</param> public TimeSpanFrequency(int period, RhythmByTime occursType) : this(period, occursType, TimeSpan.MinValue) { }
/// <summary> /// Инициализирует новый экземпляр с указанием периодичности запуска в указанное значение перечислителя времени и открытым диапазоном запуска. /// </summary> /// <param name="period">Период.</param> /// <param name="occursType">Значение перечислителя времени.</param> /// <param name="startAt">Начальное время для запуска.</param> public TimeSpanFrequency(int period, RhythmByTime occursType, TimeSpan startAt) : this(period, occursType, startAt, TimeSpan.MaxValue) { }