day d m y == nameof ((uptoyear y + dayofyear d m y) % 7) dayofyear d m y == (daysupto m y) + d daysupto 1 y == 0 daysupto m y == daysin (m - 1) y + daysupto (m - 1) y isleap y == true <| y % 400 = 0 |> false <| y % 100 = 0 |> true <| y % 4 = 0 |> false lengthofyear y == 366 <| isleap y |> 365 uptoyear y == 0 <| y = 1 |> lengthofyear (y - 1) + uptoyear (y - 1) daysin 1 y == 31 daysin 2 y == 29 <| isleap y |> 28 daysin 3 y == 31 daysin 4 y == 30 daysin 5 y == 31 daysin 6 y == 30 daysin 7 y == 31 daysin 8 y == 31 daysin 9 y == 30 daysin 10 y == 31 daysin 11 y == 30 daysin 12 y == 31 nameof 0 == "Sunday" nameof 1 == "Monday" nameof 2 == "Tuesday" nameof 3 == "Wednesday" nameof 4 == "Thursday" nameof 5 == "Friday" nameof 6 == "Saturday"