public void AsAbsolute() { var basic_schedule = JobSchedule.AsAbsolute().WithDailyTime(hour: 12, minute: 0, second: 0); //every day at noon var noon = basic_schedule.GetNextRunTime(); var weekly_schedule = JobSchedule.AsAbsolute().WithWeeklyTime(dayOfWeek: DayOfWeek.Monday, hour: 12, minute: 0, second: 0); var noon_monday = weekly_schedule.GetNextRunTime(); var monthly_schedule = JobSchedule.AsAbsolute().WithMonthlyTime(day: 15, hour: 12, minute: 0, second: 0); var noon_15th = monthly_schedule.GetNextRunTime(); Assert.NotNull(noon); Assert.Equal(12, noon.Value.Hour); Assert.Equal(0, noon.Value.Minute); Assert.Equal(0, noon.Value.Second); Assert.NotNull(noon_monday); Assert.Equal(DayOfWeek.Monday, noon_monday.Value.DayOfWeek); Assert.Equal(12, noon_monday.Value.Hour); Assert.Equal(0, noon_monday.Value.Minute); Assert.Equal(0, noon_monday.Value.Second); Assert.NotNull(noon_15th); Assert.True(noon.Value.Year == DateTime.UtcNow.Year || noon.Value.Month == DateTime.UtcNow.Year + 1); Assert.True(noon.Value.Month == DateTime.UtcNow.Month || noon.Value.Month == DateTime.UtcNow.Month + 1); Assert.Equal(15, noon_15th.Value.Day); Assert.Equal(12, noon_15th.Value.Hour); Assert.Equal(0, noon_15th.Value.Minute); Assert.Equal(0, noon_15th.Value.Second); }
public void EveryDayAtNoonExceptWeekends() { //15:00:00 UTC ~ 8:00:0 PDT var alarm_schedule = JobSchedule.AsAbsolute() .WithWeeklyTime(DayOfWeek.Monday, 15, 0, 0) .WithWeeklyTime(DayOfWeek.Tuesday, 15, 0, 0) .WithWeeklyTime(DayOfWeek.Wednesday, 15, 0, 0) .WithWeeklyTime(DayOfWeek.Thursday, 15, 0, 0) .WithWeeklyTime(DayOfWeek.Friday, 15, 0, 0); var sunday_morning = new DateTime(2015, 5, 10, 18, 0, 0, DateTimeKind.Utc); //11am sunday ... var next_on_sunday = alarm_schedule.GetNextRunTime(sunday_morning); Assert.NotNull(next_on_sunday); Assert.Equal(DayOfWeek.Monday, next_on_sunday.Value.DayOfWeek); Assert.Equal(15, next_on_sunday.Value.Hour); var monday_early_morning = new DateTime(2015, 5, 11, 14, 0, 0, DateTimeKind.Utc); //7am monday ... var next_on_monday_early = alarm_schedule.GetNextRunTime(monday_early_morning); Assert.NotNull(next_on_monday_early); Assert.Equal(DayOfWeek.Monday, next_on_monday_early.Value.DayOfWeek); Assert.Equal(15, next_on_monday_early.Value.Hour); var monday_noon = new DateTime(2015, 5, 11, 19, 0, 0, DateTimeKind.Utc); //12pm monday ... var next_on_monday_noon = alarm_schedule.GetNextRunTime(monday_noon); Assert.NotNull(next_on_monday_early); Assert.Equal(DayOfWeek.Tuesday, next_on_monday_noon.Value.DayOfWeek); Assert.Equal(15, next_on_monday_noon.Value.Hour); var tuesday_noon = new DateTime(2015, 5, 12, 19, 0, 0, DateTimeKind.Utc); //12pm monday ... var next_on_tuesday_noon = alarm_schedule.GetNextRunTime(tuesday_noon); Assert.NotNull(next_on_monday_early); Assert.Equal(DayOfWeek.Wednesday, next_on_tuesday_noon.Value.DayOfWeek); Assert.Equal(15, next_on_tuesday_noon.Value.Hour); var friday_noon = new DateTime(2015, 5, 15, 19, 0, 0, DateTimeKind.Utc); //12pm monday ... var next_on_friday_noon = alarm_schedule.GetNextRunTime(friday_noon); Assert.NotNull(next_on_monday_early); Assert.Equal(DayOfWeek.Monday, next_on_friday_noon.Value.DayOfWeek); Assert.Equal(15, next_on_friday_noon.Value.Hour); }
public override JobSchedule GetSchedule() { return(JobSchedule.AsAbsolute().WithDailyTime(00, 00, 00)); }