如题: 怎么样才能提供一个 周数(全年当中的第几周)和星期,来计算出这个日期(年月日)
1
hahastudio 2016-07-24 10:05:43 +08:00
|
2
cyr1l 2016-07-24 10:10:49 +08:00 via iPhone
年是已知的吧?你只需要求月日。
|
4
SuperMild 2016-07-24 10:35:51 +08:00
- 用闰年公式算出是否闰年,这样每个月有多少天就确定了
- 使用计算星期几的公式(例如蔡勒公式, w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 )计算出当年 1 月 1 日是星期几 - 利用上述两个数据推算即可 |
5
sunus 2016-07-24 12:08:33 +08:00
可以用 isoweek 这个库 https://pypi.python.org/pypi/isoweek/
|
6
crazykuma 2016-07-24 13:19:36 +08:00
pandas 的 dateoffset 就可以做到
from pandas.tseries.offsets import * d=datetime(2016,1,1) d+Week(2,weekday=0) #2 周后的星期一 |
7
Jolly23 OP 做完了,感谢大家的帮助 @sunus @crazykuma @SuperMild @cyr1l @hahastudio
def iso_to_gregorian(iso_year, iso_week, iso_day): fourth_jan = date(iso_year, 1, 4) delta = timedelta(fourth_jan.isoweekday() - 1) iso_year_start = fourth_jan - delta year_start = iso_year_start return year_start + timedelta(days=iso_day-1, weeks=iso_week-1) def iso_to_date(iso_year, iso_week, iso_day): return iso_to_gregorian(iso_year, iso_week, iso_day).strftime("%Y-%m-%d") print iso_to_date(2016, 30, 3) |