今天看到一個題目“用函數實現輸入某年某月某日,判斷這一天是這一年的第幾天?閏年情況也考慮進去”,用python來寫,編寫思路是:
1、先輸入一個日期,然后根據日期獲取對應的年、月、日
2、將月份及每個月份對應的天數存放在一個字典中
3、判斷輸入的年份是否為閏年,若為閏年則修改二月份的天數為29天
4、最后根據月、日計算天數
實現代碼如下:
# 判斷是否是閏年 def leap_year(year_one): if (year_one % 400 == 0) or (year_one % 4 == 0 and year_one % 100 != 0): return True else: return False # 用函數實現輸入某年某月某日,判斷這一天是這一年的第幾天?閏年情況也考慮進去 def year_day(): str_ymd = input("請輸入一個日期(eg:20160818):") str_y = int(str_ymd[0:4]) # 獲取年份 str_m = int(str_ymd[4:6]) # 獲取月份 str_d = int(str_ymd[6:8]) # 獲取日 str_day = 0 # 定義第幾天 # 定義一般情況下對應月份的天數 disc_day = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31} # 如果是閏年,2月份的天數修改為29天 if leap_year(str_y): disc_day[2] = 29 for i in range(1, str_m): str_day += disc_day[i] str_day = str_day + str_d print("%s是%d年的第%d天" % (str_ymd, str_y, str_day))