比较python中的日期(3.3.3)

2024-03-29 06:08:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须要求用户输入开始日期和结束日期。日期必须在 YYYY-MM-DD格式。我已经写了一些if语句来处理用户可能会犯的一些格式错误,比如不在中间输入破折号,以及 在对方的位置输入月份和日期。在

我现在需要的是确保结束日期总是晚于开始日期的方法 日期。因为从逻辑上讲,结束日期不能早于开始日期。在

我不知道怎么做。任何帮助都将不胜感激,谢谢。在

def get_start_date() -> str:
    START_DATE = input('Enter start date (in YYYY-MM-DD format): ').strip()

    if len(START_DATE) != 10:
        print('Date entry not correct, please try again')
        get_start_date()

    elif eval(START_DATE[5]) > 1:
        print('Date entry not correct, please try again')
        get_start_date()

    elif eval(START_DATE[8]) > 3:
        print('Date entry not correct, please try again')
        get_start_date()

    elif START_DATE[4] and START_DATE[7] != '-':
        print('Date entry not correct, please try again')
        get_start_date()



def get_end_date() -> str:
    END_DATE = input('Enter end date (in YYYY-MM-DD format): ').strip()

    if len(END_DATE) != 10:
        print('Date entry not correct, please try again')
        get_end_date()

    elif END_DATE[4] and END_DATE[7] != '-':
        print('Date entry not correct, please try again')
        get_end_date()

    elif eval(END_DATE[5]) > 1:
        print('Date entry not correct, please try again')
        get_end_date()



get_start_date()
get_end_date()

Tags: getdatenotstartendprintentryplease
1条回答
网友
1楼 · 发布于 2024-03-29 06:08:41

{获取模块的开始日期和获取日期一样简单

from datetime import datetime

def get_date(prompt, f="%Y-%m-%d"):
    while True:
        try:
            return datetime.strptime(input(prompt), f)
        except ValueError:
            print("Not a valid date.")

现在返回的是一个实际的datetime对象,而不仅仅是一个字符串,并且可以很容易地进行比较:

^{pr2}$

相关问题 更多 >