Я не знаю, как ввести дату в диапазоне python - PullRequest
0 голосов
/ 26 мая 2020

введите здесь описание изображения def main ():

date_tokens = date_input.split('/')
day = int(date_tokens[0])
month = int(date_tokens[1])
year = int(date_tokens[2])

если 01.01.1990 <= 31.12.2020: date_input = input ('Date:') else: int (input ("Введенная вами дата недействительна, введите дату между 01.01.1990 и 31.12.1990")) </p>

main ()

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

python Объект datetime - ваш друг: Документация по дате и времени

Это позволяет вам легко производить вычисления по датам, включая сравнения, как вы хотите.

import datetime

date_input = datetime.date(year, month, day)
if date_input > datetime.date(1990, 1, 1) and date_input < datetime.date(1990, 12, 31):
    date_input = input('Date: ')
else:
    int(input("The date that you enter is not valid, please input a date in between 1/1/1990 and 31/12/1990 "))

Кроме того, если вы хотите, чтобы пользователь продолжал вводить даты, вы можете сделать это внутри al oop или, конечно, поместить ввод внутри date_input:

def main():
    date_input = input ('Date: ')
    date_tokens = date_input.split('/')
    day = int(date_tokens[0])
    month = int(date_tokens[1])
    year = int(date_tokens[2])
    date_input = datetime.date(year, month, day)
    if date_input > datetime.date(1990, 1, 1) and date_input < datetime.date(1990, 12, 31):
        date_input = input('Date: ')
    else:
        int(input("The date that you enter is not valid, please input a date in between 1/1/1990 and 31/12/1990 "))
        main()


main()

(у меня есть немного ленив, поэтому я снова позвонил main(). Тот же результат ожидается и для другой печати «Дата:»)

0 голосов
/ 26 мая 2020

Полный код будет:

from datetime import date


date_tokens = date_input.split("/")

if date(1990,1,1) <= date(int(date_tokens[0]), int(date_tokens[1]), int(date_tokens[2])) <= date(2020,12,31):
    date_input = input('Date: ')
else:
    input("The date that you enter is not valid, please input a date in between 1/1/1990 and 31/12/1990 ")
...