private static DateTimeOffset NextDateForHour(int minutes, int seconds) { DateTime now = DateTime.Now; if (now.Minute < minutes || now.Minute == minutes && now.Second < seconds) { return(DateBuilder.DateOf(now.Hour, minutes, seconds)); } else if (now.Hour < 23) { return(DateBuilder.DateOf(now.Hour + 1, minutes, seconds)); } else { return(DateBuilder.TomorrowAt(0, minutes, seconds)); } }
public static async void Start() { IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler(); await scheduler.Start(); IJobDetail job = JobBuilder.Create <MailSender>().Build(); // job is made 00:00:01 every day ITrigger trigger = TriggerBuilder.Create() .WithIdentity("uaReportTrigger", "uaReportGroup") .StartAt(DateBuilder.TomorrowAt(0, 0, 1)) .WithSimpleSchedule(x => x .WithIntervalInHours(24) .RepeatForever()) .Build(); await scheduler.ScheduleJob(job, trigger); }