Python 计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上
生活随笔
收集整理的這篇文章主要介紹了
Python 计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目內容:
根據下列信息計算在1901年1月1日至2000年12月31日間共有多少個星期天落在每月的第一天上?
a) 1900.1.1是星期一
b) 1月,3月,5月,7月,8月,10月和12月是31天
c) 4月,6月,9月和11月是30天
d) 2月是28天,在閏年是29天
e) 公元年數能被4整除且又不能被100整除是閏年
f) 能直接被400整除也是閏年
輸出格式:
一個正整數
題目分析:
方法一:
使用if語句進行判斷。
先計算出1901年到2000年每個月的第一天與1901年1月1號相差的天數,用這個天數對7取余,如果等于零,表明這一天是星期天(前提是題目給出的:1901年1月1號是星期一。由此推斷1901年1月7號是星期天,同理,1901年1月14號、21號、28號都是星期天)。
方法二:
使用python中的calendar模塊。調用monthcalendar函數,返回某個月以每一周為元素的序列。之后獲得第一個元素(即第一周的日期排布),判斷第1天出現的位置是否為6,即可判斷每月第1天是否為星期天。
題目代碼:
方法一
L = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] #因為每一年的月份天數基本上都是固定的,直接使用數組表示,二月份默認28天,下面再用是否閏年判斷 day = 0 count = 0 for year in range(1901, 2001): #先判斷閏年,以確定2月份的天數if(year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):L[1] = 29for month in range(1, 13):day += L[month - 1]if(day % 7 == 0):count += 1print count方法二
import calendar count=0 for year in range(1901, 2001):for month in range(1, 13):if calendar.monthcalendar(year, month)[0].index(1) == 6:count += 1 print count參考
http://www.cnblogs.com/hongten/archive/2013/08/07/hongten_python_calendar.html
總結
以上是生活随笔為你收集整理的Python 计算在1901年1月1日至2000年12月31日间共有多少个星期天落在每月的第一天上的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android V2签名与校验原理分析
- 下一篇: 如何检测计算机病毒并做成ppt,计算机病