本文實例講述了Python自定義函數計算給定日期是該年第幾天的方法。分享給大家供大家參考,具體如下:
寫一個函數,計算給定日期是該年的第幾天.
滿足閏年的條件:
- 閏年是公歷中的名詞,能被4整除但不能被100整除,或能被400整除的年份即為閏年。
- 閏年(Leap Year)是為了彌補因人為歷法規定造成的年度天數與地球實際公轉周期的時間差而設立的。補上時間差的年份為閏年。閏年共有366天(1-12月分別為31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。
- 凡陽歷中有閏日(二月為二十九日)的年;閏余(歲余置閏。陰歷每年與回歸年相比所差的時日);注意閏年(公歷中名詞)和閏月(農歷中名詞)并沒有直接的關聯,公歷中只分閏年和平年,平年有365天,而閏年有366天(2月中多一天);平年中也可能有閏月(如2017年是平年,農歷有閏月,閏6月)。
代碼如下:
#coding=utf-8 #寫一個函數,計算給定日期是該年的第幾天. def count(year,month,day): count = 0 #判斷該年是平年還是閏年 if year%400==0 or (year%4==0 and year%100!=0): print('%d年是閏年,2月份有29天!'%year) li1 = [31,29,31,30,31,30,31,31,30,31,30,31] for i in range(month-1): count += li1[i] return count+day else: print('%d年是平年,2月份有29天!' % year) li2 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] for i in range(month-1): count +=li2[i] return count+day if __name__ == "__main__": year = int(input('請輸入年份:')) month = int(input('請輸入月份:')) day = int(input('請輸入日期:')) count = count(year,month,day) print('%d年%d月%d日是今年的第%d天!'%(year,month,day,count))
運行結果:
請輸入年份:2017
請輸入月份:8
請輸入日期:17
2017年8月17日是今年的第229天!
PS:這里再為大家推薦幾款關于日期與天數計算的在線工具供大家使用:
在線日期/天數計算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi
在線萬年歷日歷:
http://tools.jb51.net/bianmin/wannianli
在線陰歷/陽歷轉換工具:
http://tools.jb51.net/bianmin/yinli2yangli
Unix時間戳(timestamp)轉換工具:
http://tools.jb51.net/code/unixtime
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python日期與時間操作技巧總結》、《Python數學運算技巧總結》、《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
