我需要在Pyhton3上编程,以检查用户是否为18岁以上。 输入:出生日期。 4种格式(25/12 / 2000,25-12-2000,25.12.2000,25_12_2000) 如果打印错误(格式错误) 输出:“欢迎使用系统”或“对不起,当您18岁以上时复出” 如果您需要我的愚蠢尝试:
from datetime import datetime, date
def try_parsing_date(text):
for fmt in ('%d/%m/%Y', '%d.%m.%Y', '%d-%m-%Y', '%d_%m_%Y'):
try:
return datetime.strftime(text,fmt)
except ValueError:
pass
raise ValueError('no valid date format')
dob = input('Введите свой день рождения (дд/мм/гггг): ')
try_parsing_date(dob)
也许用正则表达式处理它?</ p>
```re_age_checker= "^(0[1-9]|[12][0-9]|3[01])[- \/.,_](0[1-9]|1[012])[- \/.,_](19|20)\d\d"```
答案 0 :(得分:0)
您的尝试是一个好的开始,但是您将strftime
与strptime
混为一谈;改变它。
也许用正则表达式处理它?</ p>
这是不可取的。完成上述更改后,我们可以使用函数try_parsing_date
的结果来计算18岁生日,只需将其与今天的日期进行比较即可。
dt = try_parsing_date(dob)
import time
# compute the 18th birthday:
d = date.fromtimestamp(time.mktime((dt.year+18, dt.month, dt.day, *(0,)*6)))
if d <= date.today():
print("welcome to system")
else:
print("sorry comeback when you will be 18+")