Q: 我要写的小程序是这样的,写一个python脚本去返回上个星期的天数 in the format "YYYYMMDD"比如日期是20051122,返回结果是:["20051113", "20051114", "20051115", "20051116", "20051117", "20051118", "20051119"]
A:首先将字符串的’yyyymmdd’转为 (year, mon, day),简单的可以:
>>> date = ‘20051122′
>>> year, mon, day = int(date[:4]), int(date[4:6]), int(date[6:])
然后使用 datetime 得到一个 datetime 对象
>>> import datetime
>>> d = datetime.datetime(year, mon, day)
因为 datetime 对象可以得到一个天数的星期日数(weekday),根据这个数向前推即可。
>>> d.weekday()
1
文档上说,星期一是 0,则此上面就是星期二。看你的要求是从星期日开始算第一天,因此上个星期六就是:指定日期-它的星期日数-2
知道星期六了,就知道上个星期的每天时间了
原文: http://blog.donews.com/limodou/archive/2005/12/12/654858.
>>> b = d – datetime.timedelta(d.weekday() + 2)
>>> days = []
>>> for i in range(6, -1, -1):
… c = b – datetime.timedelta(i)
… days.append(c.strftime(‘%Y%m%d’))
>>> days
['20051113', '20051114', '20051115', '20051116', '20051117', '20051118', '20051119']