Как я могу проверить дату в Python 3.x? - PullRequest
16 голосов
/ 07 февраля 2010

Я бы хотел, чтобы пользователь ввел дату, что-то вроде:

date = input('Date (m/dd/yyyy): ')

, а затем убедитесь, что введенные данные являются действительной датой. Меня не особо волнует формат даты.

Спасибо за любой вклад.

Ответы [ 3 ]

27 голосов
/ 07 февраля 2010

Вы можете использовать функцию strptime() модуля time:

import time
date = input('Date (mm/dd/yyyy): ')
try:
  valid_date = time.strptime(date, '%m/%d/%Y')
except ValueError:
  print('Invalid date!')

Обратите внимание, что в Python 2.x вам нужно будет использовать raw_input вместо input.

2 голосов
/ 22 декабря 2011
def validDate(y, m, d):
  Result = True
  try:
    d = datetime.date(int(y), int(m), int(d))
  except ValueError, e:
    Result = False
  return Result

и в программе использовать функцию, определенную ранее:

 if not validDate(year_file, month_file, day_file):
   return 0
2 голосов
/ 09 февраля 2010

Макс С.,

Спасибо за код. Вот как я это реализовал:

while True:
    date = input('Date (m/dd/yyyy): ')
        try:
            date = time.strptime(date, '%m/%d/%Y')
            break
        except ValueError:
            print('Invalid date!')
            continue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...