In [ ]:
print("Hello World!")

#greet user
name=input("\nWhat's your name? ")
print("\nHi, " +name+"!")

#day teller
print("Enter a date (earliest date 01.01.1990) you would like to know the weekday to:")
months=['January','February','March','April','May','June','July','August','September','October','November','December']
endings=['st','nd','rd']+17*['th']+['st','nd','rd']+7*['th']+['st']
weekdays=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']

year=input('\nYear: ')
month=input('Month (1-12): ')
day=input('Day (1-31): ')

year_number=int(year)
month_number=int(month)
day_number=int(day)

#check if leap year
def schaltjahr(year_number):
    if year_number%4==0:
        if year_number%100==0:
            if year_number%400==0:
                return True
            else:
                return False
            return False
        else:
            return True
        return True

#check validity of date
if year_number<1990 or month_number<1 or month_number>12 or day_number<0 or day_number>31:
    print("invalid date")
elif month_number==2 and day_number>29:
    print("invalid date")
elif schaltjahr(year_number) and month_number==2 and day_number>28:
    print("invalid date")
elif month_number==4 or month_number==6 or month_number==9 or month_number==11:
    if day_number>30:
        print("invalid date")

else:
    #count days from 01.01.1990
    counter = 0
    jahr = 1990
    monat = 1
    while jahr<year_number:
        if schaltjahr(jahr):
            counter += 366
        else:
            counter += 365
        jahr += 1
    while monat<month_number:
        if monat in [1, 3, 5, 7, 8, 10]:
            counter += 31
        elif monat in [4, 6, 9, 11]:
            counter += 30
        elif monat==2 and schaltjahr(year_number):
            counter += 29
        elif monat==2:
            counter += 28
        monat += 1

    counter += day_number

    weekday=counter%7

    #output
    print('\n'+months[month_number-1]+' '+day+endings[day_number-1]+', '+year+" was a "+weekdays[weekday])