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))