ある日が1年の何日目かを計算する
853 ワード
大まかな考え方入力年月日:1月1日から先月末までの日数に入力した日付値を加える注意:閏年かつ入力月が3より大きい場合は1日多く加算することを考慮する
うるう年の西暦年は整百あるいは整千の(つまり年の末尾に少なくとも2つの0がある)で、年を400で割って、もし整除することができるならば、うるう年で、整除することができないのは平年で、西暦のその他の年、年を4で割って、もし整除することができるならば、うるう年で、整除することができないのは平年で、例えば1900÷400=4......300は平年で、平年2月は28日です.2000年、2000÷400=5は閏年、閏年2月は29日である.2002年、2002÷4=500......2は平年2004年、2004÷4=501は閏年閏年2月は29天平年2月は28日である.
year = input('year:
')
month = input('month:
')
day = input('day:
')
months = (0,31,59,90,120,151,181,212,243,273,304,334) #0~12
if 0 < month <= 12:
sum = months[month - 1]
else:
print('month error')
sum += day
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)): #
ryear = 1
if (ryear == 1) and (month > 2):
sum += 1
print( 'it is the %dth day.' % sum)
うるう年の西暦年は整百あるいは整千の(つまり年の末尾に少なくとも2つの0がある)で、年を400で割って、もし整除することができるならば、うるう年で、整除することができないのは平年で、西暦のその他の年、年を4で割って、もし整除することができるならば、うるう年で、整除することができないのは平年で、例えば1900÷400=4......300は平年で、平年2月は28日です.2000年、2000÷400=5は閏年、閏年2月は29日である.2002年、2002÷4=500......2は平年2004年、2004÷4=501は閏年閏年2月は29天平年2月は28日である.