public Day GetDay(DayOfTheMonth day) { if (day.ToInt() > DayCount) { return(null); } return(FirstDay + (int)day); }
public void Schedule_should_be_populated_correctly_with_multiple_customers() { List <CustomerPreference> preferences = new() { new() { Customer = "Jack", Preference = new DayOfTheMonth { Day = 1 } }, new() { Customer = "George", Preference = new DaysOfTheWeek { DaySelection = new() { DayOfWeek.Monday, DayOfWeek.Wednesday } } }, new() { Customer = "William", Preference = new EveryDay() } }; var schedule = Scheduler.CreateSchedule(preferences, new(start: new DateTime(2020, 1, 1), end: new DateTime(2020, 1, 6))); Assert.Contains(new DateTime(2020, 1, 1), schedule.Keys); var entry = schedule[new DateTime(2020, 1, 1)]; Assert.Contains("George", entry); Assert.Contains("Jack", entry); Assert.Contains("William", entry); Assert.Equal(3, entry.Count); entry = schedule[new DateTime(2020, 1, 2)]; Assert.Contains("William", entry); Assert.Single(entry); entry = schedule[new DateTime(2020, 1, 3)]; Assert.Contains("William", entry); Assert.Single(entry); entry = schedule[new DateTime(2020, 1, 4)]; Assert.Contains("William", entry); Assert.Single(entry); entry = schedule[new DateTime(2020, 1, 5)]; Assert.Contains("William", entry); Assert.Single(entry); entry = schedule[new DateTime(2020, 1, 6)]; Assert.Contains("George", entry); Assert.Contains("William", entry); Assert.Equal(2, entry.Count); } }
public static string ToString(this DayOfTheMonth dayOfTheMonth) { int numeral = dayOfTheMonth.ToInt(); string suffix; if (numeral % 10 == 1) { suffix = "st"; } else if (numeral % 10 == 2) { suffix = "nd"; } else if (numeral % 10 == 3) { suffix = "rd"; } else { suffix = "th"; } return($"{numeral}{suffix}"); }
public static int ToInt(this DayOfTheMonth dayOfTheMonth) { return((int)dayOfTheMonth + 1); }