|
发表于 2018-1-5 20:03:35
|
显示全部楼层
直接找,370次循环的样子,还是很快的,限制条件是年份4位数
- def fun(num):
- return [(num // month // day, month, day) for month in range(1, 13)
- for day in range(1, 32)
- if not (num/month/day % 1) and (num/month/day)//10**4 < 1]
复制代码
不过可能会出现1992-2-31这种答案,想办法限制一下
- import datetime
- def fun2(num):
- result = [(num // month // day, month, day) for month in range(1, 13)
- for day in range(1, 32) if not (num/month/day % 1)]
- for year, month, day in result:
- if year // 10**4 < 1:
- try:
- datetime.datetime(year, month, day)
- print('{}-{}-{}'.format(year, month, day))
- except ValueError:
- continue
复制代码 |
评分
-
查看全部评分
|