python-万年历

万年历

例题:已知2012年1月25日是星期三,编写一个程序, 输入用“年 月 日”表示的一个2012年1月25日以后的期, 输出该日期是星期几(星期天输出0)。

#累加的做法
monthDays = [-1,31,28,31,30,31,30,31,31,30,31,30,31]#设置一个列表,前面下标为0的值无意义
days = 0 #该变量记录从2012-01-22开始过了多少天
lst = input().split()
year,month,date = int(lst[0]),int(lst[1]),int(lst[2])
for y in range(2012,year): #先累加过掉的整年的天数
    if y%4 ==0 and y%100!= 0 or y%400 == 0: #闰年
        #普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年。
         #世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年
        days += 366
    else:
        days += 365
if year%4 ==0 and year%100!= 0 or year%400 == 0:
    monthDays[2] = 29
for i in range(1,month): #再累加year那年过掉的整月的天数
    days += monthDays[i]
days += date #累加year年month那个月的天数
days -= 22 #2012年1月22日是星期天。扣掉2012年的前22天
print(days % 7) #星期天算一周的第0天




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值