用python实现日期处理

本文详细介绍了一种计算两个日期之间相差天数的方法,包括处理闰年和平年、输入日期的规范化、拆分日期并判断是否为闰年等步骤,通过循环计算得出两日期间的确切天数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日期处理的方法有以下几点:
1、先考虑好年份是闰年还是平年,并且存储闰年和平年月份的天数(用二维列表实现)
2、这里规定日期-1小于日期-2,如果键入失误的话,将两个日期交换
3、拆分输入的日期为年、月、日(这里要注意,py不像c,c的除法是整除,而py的除法可能会得到浮点数,因此在除法过后应该加上int强制转换)
4、判断输入的日期是闰年还是平年,并且用index变量来存储得到的结果
5、如果日期-1小于日期-2,则一直循环进行以下操作(这里设置一个天数计数器,两个日期的差值就是计数器的值的大小):
将日期-1的天数加一,如果日期-1的天数超过了当月的最大天数,说明月份加一,并且天数重置为1;月份类似
6、输出相差的天数

month = [[0, 0], [31, 31], [28, 29], [31, 31], [30, 30], [31, 31], [
    30, 30], [31, 31], [31, 31], [30, 30], [31, 31], [30, 30], [31, 31]]
# 首先对闰年和非闰年的天数进行统计
year_1 = int(input())
year_2 = int(input())
# 输入两个要计算的年份
if year_1 > year_2:
    temp = year_1
    year_1 = year_2
    year_2 = temp


y_1 = int(year_1/10000)
m_1 = int(year_1 % 10000/100)
d_1 = year_1 % 100  # 分离出年月日

y_2 = int(year_2/10000)
m_2 = int(year_2 % 10000/100)
d_2 = year_2 % 100  # 分离出年月日

if y_1 % 4 == 0 and y_1 % 100 != 0 or y_1 % 400 == 0:
    index_1 = 1
else:
    index_1 = 0

if y_2 % 4 == 0 and y_2 % 100 != 0 or y_2 % 400 == 0:
    index_2 = 1
else:
    index_2 = 0
# 判断两个年份是不是闰年,并设定一个指数,随着闰年非闰年改变

day = 0
while y_1 < y_2 or m_1 < m_2 or d_1 < d_2:
    d_1 = d_1+1
    if d_1 == month[m_1][index_1]+1:
        d_1 = 1
        m_1 = m_1+1
# 如果天数超过列表中每个月的天数,那么就让月份进位,并且天数重置
    if m_1 == 13:
        y_1 = y_1+1
        m_1 = 1
# 如果月份超过列表中的一年中的月数,那么让年份进位,并重置月份
    day = day+1

print(day)

计算结果如图所示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值