Python编程——实现输入指定日期,判断输入日期当天的星期

这个Python的小案例是实现输入指定的日期,判断出输入日期当天的星期。

这个案例的思路是:

  • 先输入指定的日期格式,并对日期进行切片处理,得到year,month,day;
  • 输入月份的列表,包括闰年和平年的月份具体天数;
  • 对输入的日期进行分类处理,20180101之前和20180101之后做出具体分析,具体如以下代码所示;
  • year>=2018年时:首先判断年份是否是闰年,闰年天数加366,否则天数加365,在判断月份,如果当年是闰年,月份要按照month_list2相加,否则按照month_list1相加。
  • year<2018年时:大致思路是一样的,具体可以看代码所示;

输入指定日期,计算当天是星期几

代码如下:

print("20180101是星期一,作为参考日期")
jisuan_riqi=input("请输入你要计算的日期(20180101):")

year=int(jisuan_riqi[:4])
month=int(jisuan_riqi[4:6])
day=int(jisuan_riqi[-2:])

month_list1=[31,28,31,30,31,30,31,31,30,31,30,31]
month_list2=[31,29,31,30,31,30,31,31,30,31,30,31]

#输入的年份大于等于2018年
if year>=2018:
    year_days=0
    for i in range(2018,year):
        #先做出一个判断,判断年份是否是闰年
        if (i%4==0 & (i%100!=0))|(i%400==0):
            year_days+=366
        else:
            year_days+=365
    month_days=0
    if ((year % 4 == 0) & (year % 100 != 0)) | (year % 400 == 0):
        for j in range(month - 1):
            month_days += month_list2[j]
    else:
        for j in range(month-1):
            month_days += month_list1[j]
    total_days=year_days+month_days+day
    # 相差天数与7取余,+1表明余数为0是周一
    xingqi=(total_days-1)%7+1
    print("你输入的日期 %s"%jisuan_riqi,"是周",xingqi)

#输入的年份小于2018年
else:
    # 计算2018年之前的日期时,先将2018的一天作为初始,加入到总天数中
    year_days=1
    for i in range(2017,year,-1):
        #先做出一个判断,判断年份是否是闰年,在对其进行天数的计算
        if (i%4==0 & (i%100!=0))|(i%400==0):
            year_days+=366
        else:
            year_days+=365
    month_days=0
    if (year % 4 == 0 & (year % 100 != 0)) | (year % 400 == 0):
        for j in range(11, month - 2, -1):
            month_days += month_list2[j]
    else:
        for j in range(11, month - 1, -1):
            month_days += month_list1[j]
    total_days=year_days+month_days-day
    if (total_days)%7==0:
        xingqi=(total_days)%7+1
    else:
        #余数为1是周7,余数为2是周6,所以8-余数
        xingqi = 8-(total_days) % 7
    print("你输入的日期 %s"%jisuan_riqi,"是周",xingqi)

结果如下:

20180101是星期一,作为参考日期
请输入你要计算的日期(20180101):20000103
你输入的日期 20000103 是周 1

20180101是星期一,作为参考日期
请输入你要计算的日期(20180101):20181219
你输入的日期 20181219 是周 3

20180101是星期一,作为参考日期
请输入你要计算的日期(20180101):20260806
你输入的日期 20260806 是周 4

 

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值