Wednesday, November 20, 2019

Day of the week in Python

D = int(input("Enter day: "))
M = int(input("Enter month number: "))
Y = int(input("Enter year: "))
MCode = [0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5]
CCode = [6, 4, 2, 0, 6]      # 1600-1699, 1700-1799, etc.
Days = ["Sunday", "Monday", "Tuesday", "Wednesday",
        "Thursday", "Friday", "Saturday"]
C = (Y // 100) % 16          # C -> Century

num = D + MCode[M-1] + (Y%100) + ((Y%100)//4) + CCode[C]
print(Days[num%7])

Explanation below


Inputs
Output
Month Codes
Century Codes
Day Codes
January
0
1600 - 1699
6
Sunday
0
February
3
1700 - 1799
4
Monday
1
March
3
1800 - 1899
2
Tuesday
2
April
6
1900 - 1999
0
Wednesday
3
May
1
2000 - 2199
6
Thursday
4
June
4


Friday
5
July
6


Saturday
6
August
2




September
5




October
0




November
3




December
5





11 – 08 – 1966
(Day +MCode + Last 2 digits of year + Last 2 digits of year // 4 + CCode) % 7
(11   +      2      +             66                   +                66                // 4 +     0) % 7
(11   +      2      +             66                   +                           16             +     0) % 7
95 % 7 = 13 4/7
4 (Thursday)


No comments:

Post a Comment