使用 Python 计算两个日期之间的年份差 - 两种方法详解

本文将介绍如何使用 Python 计算两个日期之间的年份差,并提供两种方法:使用 datetime 模块和自定义函数。

方法一:使用 datetime 模块

可以使用 datetime 模块中的 date 类和 timedelta 类来计算两个日期之间的差距,具体代码如下:

from datetime import date, timedelta

date1 = date(1999, 5, 1)
date2 = date(2012, 7, 1)

diff = date2 - date1
years = int(diff.days / 365.25)

print('相差的年份为:', years)

输出结果为:

相差的年份为: 13

其中,timedelta 类可以表示两个日期之间的时间差,diff.days 表示日期之间相差的天数,365.25 是平均年份的天数。最后通过整除运算得到相差的年份。

方法二:自定义函数

除了使用 datetime 模块,还可以自定义函数来计算年份差,代码如下:

def calculate_year_diff(date1, date2):
    year1, month1, day1 = date1.split('-')
    year2, month2, day2 = date2.split('-')
    
    # 考虑闰年
    if (int(year1) % 4 == 0 and int(year1) % 100 != 0) or (int(year1) % 400 == 0):
        days_in_year1 = 366
    else:
        days_in_year1 = 365
    
    # 计算总天数
    total_days = (int(year2) - int(year1)) * 365 + (int(month2) - int(month1)) * 30 + (int(day2) - int(day1))
    
    # 调整闰年天数
    for year in range(int(year1) + 1, int(year2)):
        if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
            total_days += 1
    
    # 计算年份差
    years = total_days // 365
    return years

# 测试
date1 = '1999-05-01'
date2 = '2012-07-01'
years = calculate_year_diff(date1, date2)
print('相差的年份为:', years)

自定义函数 calculate_year_diff 首先将日期字符串分割成年、月、日,然后计算两日期之间的总天数,最后再除以 365 得到年份差。函数还考虑了闰年,使计算结果更加精确。

总结

本文介绍了两种计算两个日期之间的年份差的方法,第一种方法使用 datetime 模块,简单易懂,适合快速计算;第二种方法使用自定义函数,更加灵活,可以根据具体情况调整计算逻辑。

Python 计算两个日期之间的年份差 - 两种方法详解

原文地址: https://www.cveoy.top/t/topic/owAW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录