欢迎访问宙启技术站
智能推送

比较两个日期的大小的函数

发布时间:2023-10-13 21:25:00

比较两个日期的大小,可以根据日期的年份、月份和日期来进行比较。下面是一个比较日期大小的函数的实现:

def compare_dates(date1, date2):
    # 解析日期字符串,获取年、月、日的数值
    year1, month1, day1 = map(int, date1.split('-'))
    year2, month2, day2 = map(int, date2.split('-'))

    # 比较年份
    if year1 > year2:
        return 1
    elif year1 < year2:
        return -1

    # 年份相同,比较月份
    if month1 > month2:
        return 1
    elif month1 < month2:
        return -1

    # 年份和月份相同,比较日期
    if day1 > day2:
        return 1
    elif day1 < day2:
        return -1

    # 年份、月份和日期均相同,返回0表示日期相同
    return 0

该函数接受两个日期字符串作为参数,日期字符串的格式为"YYYY-MM-DD"。函数首先使用split()方法将日期字符串拆分为年、月、日的数值,并将其转换为整数。然后,按照年、月、日的顺序进行比较:

1. 首先比较年份。如果date1的年份大于date2的年份,则返回1;如果date1的年份小于date2的年份,则返回-1。

2. 如果年份相同,则比较月份。如果date1的月份大于date2的月份,则返回1;如果date1的月份小于date2的月份,则返回-1。

3. 如果年份和月份均相同,则比较日期。如果date1的日期大于date2的日期,则返回1;如果date1的日期小于date2的日期,则返回-1。

4. 如果年份、月份和日期均相同,则返回0,表示日期相同。

可以通过以下示例调用该函数并进行测试:

date1 = '2022-01-01'
date2 = '2021-12-31'
result = compare_dates(date1, date2)
if result > 0:
    print(f'{date1} 大于 {date2}')
elif result < 0:
    print(f'{date1} 小于 {date2}')
else:
    print(f'{date1} 等于 {date2}')

输出结果为:"2022-01-01 大于 2021-12-31"。