栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

例题:已知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)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/864060.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号