Python 求每个月份的天数的另类方法

time 模块中有个 time.strptime 方法,strptime 方法的作用就是按照特定时间格式将字符串转换为时间类型。 尝试了下,当将一个日期不正确的字符串转化为时间类型时 Python 就会报错,比如,我们尝试将 "2012-2-31" 这个字符串进行转化时就会出错,这是因为 2 月是没有 31 天的,这真是太棒了!我们就利用这点来实现求每个月有多少天,看下代码:

import time
 
def getDays(year, month):
    day = 31  # 定义每月最多的天数
    while day:
        try:
            time.strptime('%s-%s-%d'%(year, month, day), '%Y-%m-%d')  # 尝试将这个月最大的天数的字符串进行转化
            return day  # 成功时返回得就是这个月的天数
        except:
            day -= 1  # 否则将天数减1继续尝试转化, 直到成功为止
 
print(getDays(2019, 2))