Python 如何验证生日是否合法?

Python 如何验证生日是否合法?

一个有效生日的要求如下:

  1. 生日不能大于当前日期,不能小于某个日期,如19000101
  2. 日期要合法,不能是 20111345
  3. 兼容闰年处理,如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

回到顶部