public static void Main()
Console.WriteLine("{0,35} {1,20} {2,20}", "Nearest", "Forward", "Backward");
ShowDayOffsets(DayOfWeek.Sunday, DayOfWeek.Sunday);
ShowDayOffsets(DayOfWeek.Sunday, DayOfWeek.Monday);
ShowDayOffsets(DayOfWeek.Sunday, DayOfWeek.Tuesday);
ShowDayOffsets(DayOfWeek.Sunday, DayOfWeek.Wednesday);
ShowDayOffsets(DayOfWeek.Sunday, DayOfWeek.Thursday);
ShowDayOffsets(DayOfWeek.Sunday, DayOfWeek.Friday);
ShowDayOffsets(DayOfWeek.Sunday, DayOfWeek.Saturday);
ShowDayOffsets(DayOfWeek.Wednesday, DayOfWeek.Wednesday);
private static void ShowDayOffsets(DayOfWeek startDay, DayOfWeek anchorDay)
string formula = String.Format("{0} -> {1} = ", startDay, anchorDay);
Console.WriteLine("{0,-25} {1,9} {2,20} {3,20}",
Math.IEEERemainder(anchorDay - startDay, 7),
(7 + anchorDay - startDay) % 7,
(((7 + anchorDay - startDay) % 7) - 7) % 7);