#!/usr/bin/env python from datetime import datetime months = {"1":11, "2":12, "3":1, "4":2, "5":3, "6":4, "7":5, "8":6, "9":7, "10":8, "11":9, "12":10} days = {"1":"Monday", "2":"Tuesday","3":"Wednesday","4":"Thursday","5":"Friday","6":"Saturday","0":"Sunday"} bMonth = "0" bDay = "0" bYear = "0" bCent = "0" today = datetime.now() born = "You were born on a " validInput = False while (validInput == False): while(len(bYear)!=2): bYear = input("Want to know the day of the week you were born?\n Enter the two digit year: \n(e.g. if you were born in 1980 enter 80) YY ") try: tYear = int(bYear) if tYear >= 0 and tYear <= 99: validInput = True bYear = int(bYear) except ValueError: bYear = input("You made an invalid entry. \nEnter the two digit year: \n(e.g. if you were born in 1980 enter 80) YY ") validInput = False while (validInput == False): while(len(bCent)!=2): bCent = input("Enter the two digit century: \n(e.g. if you were born in 1980 enter 19) CC ") try: tCent = int(bCent) if tCent >= 0 and tCent <= 99: validInput = True bCent = int(bCent) except ValueError: bCent = input("You made an invalid entry. \nEnter the two digit century: \n(e.g. if you were born in 1980 enter 19) CC ") validInput = False while (validInput == False): while(len(bMonth)!=2): bMonth = input("Enter a number for the month: MM ") try: tMonth = int(bMonth) if tMonth >= 1 and tMonth <= 12: validInput = True bMonth = int(bMonth) else: bMonth = "0" except ValueError: bMonth = input("You made an invalid entry. \nEnter a number for the month: MM ") validInput = False while (validInput == False): while(len(bDay)!=2): bDay = input("Enter a number for the day: DD ") try: tDay = int(bDay) if bMonth == 1: if tDay >= 1 or tDay <=31: validInput = True bDay = int(bDay) elif bMonth == 2: if bYear%4 == 0: if tDay >=1 or tDay <= 29: validInput = True bDay = int(bDay) else: if tDay >=1 or tDay <= 28: validInput = True bDay = int(bDay) elif bMonth == 3: if tDay >= 1 or tDay <=31: validInput = True bDay = int(bDay) elif bMonth == 4: if tDay >= 1 or tDay <=30: validInput = True bDay = int(bDay) elif bMonth == 5: if tDay >= 1 or tDay <=31: validInput = True bDay = int(bDay) elif bMonth == 6: if tDay >= 1 or tDay <=30: validInput = True bDay = int(bDay) elif bMonth == 7: if tDay >= 1 or tDay <=31: validInput = True bDay = int(bDay) elif bMonth == 8: if tDay >= 1 or tDay <=31: validInput = True bDay = int(bDay) elif bMonth == 9: if tDay >= 1 or tDay <=30: validInput = True bDay = int(bDay) elif bMonth == 10: if tDay >= 1 or tDay <=31: validInput = True bDay = int(bDay) elif bMonth == 11: if tDay >= 1 or tDay <=30: validInput = True bDay = int(bDay) elif bMonth == 12: if tDay >= 1 or tDay <=31: validInput = True bDay = int(bDay) else: bDay = "0" except ValueError: bDay = input("You made an invalid entry. \nEnter a number for the day: DD ") if today.year < int(str(bCent)+str(bYear)): born = "You will born on a " A = int(months[str(bMonth)]) B = bDay if A == 11 or A == 12: if bYear == 00: bYear = 99 bCent = bCent - 1 else: bYear = bYear - 1 C = bYear D = bCent W = int((13*A - 1) / 5) X = int(C / 4) Y = int(D / 4) Z = int(W + X + Y + B + C - 2*D) R = int((Z%7)) if (R < 0): R = (R+7)%6 print (born + days[str(R)])