Python 计算某个日期减10天的操作

def dateMinus10Day(cls, dayno_str):
    daysofmonth = {  # 每个月的天数字典
        1: 31,
        2: 28,
        3: 31,
        4: 30,
        5: 31,
        6: 30,
        7: 31,
        8: 31,
        9: 30,
        10: 31,
        11: 30,
        12: 31
    }
    y = int(dayno_str[0:4])  # 从字符串 '2021-11-03' 取出年月日
    m = int(dayno_str[5:7])
    d = int(dayno_str[8:10])
    leapyear = 0   # 闰年标志
    date_int_10 = 0  # 日期减10天得到的结果 

    # 判断是否是闰年
    if ((y % 4 == 0 and y % 100 != 0) or (y % 400 == 0)):
        leapyear = 1
    
    # 将字符串 '2021-11-03' 转为数字 20211103
    date_int = int(dayno_str[0:4]) * 10000 + int(dayno_str[5:7]) * 100 + int(dayno_str[8:10])

    # 开始日期相关的逻辑
    if int(dayno_str[8:10]) >= 10:
        date_int_10 = date_int - 10
    else:
        if m == 1: # 如果是1月,年要减1
            date_int_10 = (y - 1) * 10000 + 12 * 100 + d + 31 - 10
        elif m == 3: # 如果是3月,考虑2月是28天还是29天
            if leapyear:
                date_int_10 = y * 10000 + 2 * 100 + d + 29 - 10
            else:
                date_int_10 = y * 10000 + 2 * 100 + d + 28 - 10
        else:
            date_int_10 = y * 10000 + (m - 1) * 100 + d + daysofmonth[m - 1] - 10
    return date_int_10

如上代码,记录了一个函数,实现输入 '2021-11-03' 这样的字符串,减去10天后,得到的日期:20211024。其中有些日期计算的逻辑,以后再写日期计算时可以参考。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值