[Python]简单例题——计算某天日期星期几

[Python]简单例题——计算某天日期星期几,第1张

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

解题思路:
(1)使用累加法,依次计算年月日
(2)先计算年份大于2012几年,月份大于1月几月,天数按照月份加相应天数最后减去22天
(3)注意事项:注意闰年

首先将每个月的天数组成列表,并且将输入的数字组成列表

monthDays=[1,31,28,31,30,31,30,31,31,30,31,30,31]  #将每个月的天数组成列表,第一项为列表第0项,所以随便取值
days=0  #最终天数
let=input().split()
year,month,date=int(let[0]),int(let[1]),int(let[2])

接下来进行计算是否为闰年,如果是闰年一年366天,如果不是则365天。

for y in range(2012,year):  #进入循环,判断是否为闰年
    if y%4==0 and y%100!=0 or y%400==0:
        days+=366
    else :
        days+=365

接着进行计算月份,月份需要注意如果是闰年2月有29天,否则是28天。

if year%4==0 and year%100!=0 or year%400==0:  #进行判断是否是闰年
    monthDays[2]=29
for i in range(1,month):
    days+=monthDays[i]

最终阶段进行计算天数,并且将结果减去22,最终除7计算出答案。

days+=date
days-=22
print(days%7)

整体代码:

monthDays=[1,31,28,31,30,31,30,31,31,30,31,30,31]
days=0
let=input().split()
year,month,date=int(let[0]),int(let[1]),int(let[2])
for y in range(2012,year):
    if y%4==0 and y%100!=0 or y%400==0:
        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):
    days+=monthDays[i]
days+=date
days-=22
print(days%7)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/873390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存