1. 程式人生 > >練習四:日期計算(輸入某年某月某日計算出這一天是該年第幾天的方法)

練習四:日期計算(輸入某年某月某日計算出這一天是該年第幾天的方法)

nbsp style 內置 練習 day pan and error ==

實現輸入某年某月某日計算出這一天是該年第幾天的方法
方法一:笨辦法
 1 list_day = [0,31,28,31,30,31,30,31,31,30,31,30,31]
 2 year = int(input(請輸入年))
 3 month = int(input(請輸入月))
 4 day = int(input(請輸入日))
 5 month_day = 0
 6 if 0<month<=12:
 7     if year % 400 == 0 or ((year % 4 ==0) and (year % 100 != 0)):
 8         print({}是閏年
.format(year)) 9 list_day[1] = 29 10 for i in range(month-1): 11 month_day += list_day[i] 12 if day <= list_day[month]: 13 count_day = month_day + day 14 print(count_day) 15 else: 16 print(day error) 17 18
else: 19 for i in range(month): 20 month_day += list_day[i] 21 if day <= list_day[month]: 22 count_day = month_day + day 23 print(count_day) 24 else: 25 print(day error) 26 else: 27 print(month error)

方法二:簡化方法一

 1 list_day = [0,31,28,31,30,31,30,31,31,30,31,30,31]
 2 year = int(input(請輸入年))
 3 month = int(input(請輸入月))
 4 day = int(input(請輸入日))
 5 if 0< month <=12:
 6     sum = list_day[month-1]
 7 else:
 8     print(data error)
 9 sum += day
10 
11 leap = 0 #
12 if year % 400 == 0 or ((year % 4 ==0) and (year % 100 != 0)):
13     leap = 1
14 if leap == 1 and month > 2:
15     sum += 1
16 print(sum)

方法三:使用模塊time和datetime

1 import datetime
2 import time
3 def function2(year, month, day): # 直接使用Python內置模塊datetime的格式轉換功能得到結果
4     date = datetime.date(year, month, day)
5     return date.strftime(%j)
6 print(function2(2018,12,3))

練習四:日期計算(輸入某年某月某日計算出這一天是該年第幾天的方法)