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

这是有人向我问的一个问题,记录在下面:

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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值