/// <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;
 }
Beispiel #2
0
        private string GetName(RhythmByTime id)
        {
            switch (id)
            {
            case RhythmByTime.Seconds:
                return("секунд");

            case RhythmByTime.Minutes:
                return("мин");

            case RhythmByTime.Hours:
                return("ч");

            default:
                return("ч");
            }
        }
Beispiel #3
0
        /// <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)
 {
 }