Python 如何验证生日是否合法?
一个有效生日的要求如下:
- 生日不能大于当前日期,不能小于某个日期,如19000101
- 日期要合法,不能是 20111345
- 兼容闰年处理,如20200229 是合法的,20190229 就是非法的
请问满足以上需求的 Python 代码怎么写?
PHP 中有checkdate()
函数,已经包含了闰年的处理,查了 Python 的 datetime 标准库,作为初学者还不太明白怎么用,也没有发现有现成的方法可以调用,整个过程都需要完全实现吗?是否有部分标准库可以支持?比如闰年的判断。所以来请教一下 :)
回答:
先说结论:datetime 可以实现你的大部分需求(你的 2 和 3 要求), 和你说的 checkdate 类似的用法是 datetime.date(year, month, day)
,如果日期合法则返回一个 date 对象,否则抛出异常;然后你可以将得到的 date 对象和预设的日期进行比较来实现你的需求 1
此外,
我对你查了标准库表示怀疑,python 的文档是非常详细的,如果你看了 datetime 文档,你还不知道 datetime 如何使用,那我觉得 python 可能不适合你
回答:
经过请教,最终得到的代码是
def check_birthday(birthday): try:
datetime.datetime.strptime(birthday, '%Y%m%d').date()
except ValueError:
return False
else:
return '19000101' < birthday < datetime.date.today().strftime('%Y%m%d')
回答:
datetime.datetime.strptime("20190228", '%Y%m%d')
用datetime模块的strptime函数获取时间元组,成功为合法时间,错误为非法时间.
回答:
楼主,谢谢你。我刚好也在找这个方法。我也是python新手。谢谢你的分享
以上是 Python 如何验证生日是否合法? 的全部内容, 来源链接: utcz.com/a/165445.html