Python计算某年某月某日天数

输入某年某月某日,判断这是当年的第几天
  • 月份天数+日天数
  • 判断是否为闰年
  • 给定12月每月天数,遍历累加

没有做健壮性处理
eval() 将 str --> int
列表索引取值
感觉代码有点累赘…



def count_date():
    date = input("请输入以'-'为间隔的日期:")
    # 用切片换成列表
    date_ls = date.split("-")
    count = 0
    # 判断是否是闰年
    if (eval(date_ls[0]) % 400 == 0
        or (eval(date_ls[0]) % 4 == 0
            and eval(date_ls[0]) % 100 != 0)):
        # 每个月份对应天数
        r_list = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        # 遍历累加
        for i in range(eval(date_ls[1])-1):
            # count是月份天数的累加,最后结果还要加上当月天数
            count += r_list[i]
            # return count+eval(date_ls[2]) 加上当月天数
        return print("""
                %s年 %s月 %s日(闰年)
                是 %s 的第 %d 天""" %
                     (date_ls[0], date_ls[1], date_ls[2],
                      date_ls[0], count + eval(date_ls[2])))
    else:
        # 平年直接copy 
        r_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        for i in range(eval(date_ls[1]) - 1):
            count += r_list[i]
        return print("""
                %s年 %s月 %s日(平年)
                是 %s 的第 %d 天""" %
                     (date_ls[0], date_ls[1], date_ls[2],
                      date_ls[0], count + eval(date_ls[2])))

我格式化输出的太丑了...


可以直接返回结果 
retutn print("第%d天" % count + eval(date_ls[2]))

借鉴自:Saggitarxm.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值