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"