@estry

Есть ли решения для расписания в C#?

Например, есть класс MyClass и метод Void.
Мне нужно запускать метод Void 10 раз в сутки. 8 раз в промежутке времени с 6 утра до 23 вечера и 2 раза с 23 вечера до 6 утра. При этом интервалы запуска должны быть рандомные.
  • Вопрос задан
  • 126 просмотров
Решения вопроса 3
firedragon
@firedragon
Senior .NET developer
Пусть будет так, через сутки повторяйте
// 8 раз в промежутке времени с 6 утра до 23 вечера и 2 раза с 23 вечера до 6 утра.
            var now = DateTime.Now;
            var startPeriod = (23 - 6) * 60;
            var startList = new List<int>();
            while (startList.Count < 8)
            {
                var val = RandomNumberGenerator.GetInt32(0, startPeriod);
                if (!startList.Contains(val))
                    startList.Add(val);
            }

            var runList = startList.OrderBy(x => x).Select(item => new DateTime(now.Year, now.Month, now.Day).AddMinutes(6 * 60 + item)).ToList();

            startList.Clear();
            var endPeriod = (1 + 6) * 60;
            while (startList.Count < 2)
            {
                var val = RandomNumberGenerator.GetInt32(0, endPeriod);
                if (!startList.Contains(val))
                    startList.Add(val);
            }

            runList.AddRange(startList.OrderBy(x => x).Select(item => new DateTime(now.Year, now.Month, now.Day).AddMinutes(23 * 60 + item)));
            ;
Ответ написан
mindtester
@mindtester Куратор тега C#
https://youtu.be/UtO6HIp1908?list=RDUtO6HIp1908
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 3 000 до 4 000 $
BRIO MRS Казань
от 70 000 до 120 000 ₽
Frostgate studio Новосибирск
от 60 000 до 100 000 ₽
18 сент. 2020, в 17:52
1000 руб./за проект
18 сент. 2020, в 17:49
500 руб./в час
18 сент. 2020, в 17:24
180 руб./за проект