最近在MOOC上学习Python,遇到一个日期计算的问题,现在来整理一下↓
根据下列信息计算在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整除也是闰年
一个正整数
方法1:
daySum=1
count=0
for year in range(1900,2001):
for month in range(1,13):
if month==1 or month==3 or month==5 or month==7 or month==8 or month==10 or month==12:
day=31
elif month==4 or month==6 or month==9 or month==11:
day=30
elif month==2:
if(year%400==0)or(year%4==0 and year%100==0):
day=29
else:
day=28
daySum+=day
if daySum%7==0 and year>1900:
count+=1
print count
方法2:
import calendar
count=0
for year in xrange(1901,2001):
for month in xrange(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