"""
根据下列信息计算在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整除也是闰年

原文链接：https://blog.csdn.net/Alisa01/java/article/details/81511315
"""

# 因为每一年的月份天数基本上都是固定的，直接使用数组表示，二月份默认28天，下面再用是否闰年判断
L = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
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] = 29
    for month in range(1, 13):
        day += L[month - 1]
        if day % 7 == 0:
            count += 1

print(count)
