知道某天,如何得到上星期的日期

来源:互联网 发布:淘宝卖家生意参谋 编辑:程序博客网 时间:2024/06/18 13:52
这是有人向我问的一个问题,记录在下面:

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

知道星期六了,就知道上个星期的每天时间了

 >>> 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']

原文:http://blog.donews.com/limodou/archive/2005/12/12/654858.