我需要精确计算过去5周的时间。如果今天的日期是2015-05-07,我需要我的计划给我2015-04-30。
到目前为止,我尝试的是
today = datetime.date.today() - datetime.timedelta(5)这给了过去5天的时间。但我需要在过去的第五个工作日。我需要这样做是因为我有一个数据库表,其中包含一些数据,我需要编写一个Python脚本来获取最后5天的数据。
发布于 2015-05-17 23:12:32
Python datetime对象有一个isoweekday()方法来帮助解决这个问题。此方法返回与一周中的一天相对应的数值。例如,星期一是整数1,你想跳过星期六和星期天,它们分别对应于6和7。我们可以用它来回溯:
from datetime import datetime, timedelta
def workingday(d, no_of_days):
backdate = d
count = 0
while count < no_of_days:
backdate = backdate - timedelta(1)
if backdate.isoweekday() in (6,7):
continue
count += 1
return backdate.strftime("%Y-%m-%d")
d = datetime.strptime("2015-05-07","%Y-%m-%d")
print workingday(d, 5)
Output:
2015-04-30 我用过你的约会格式。但你可以很容易地改变这一点。
代替isoweekday(),您可以使用weekday(),但是现在,星期一将返回为0,而星期日将返回为6。
发布于 2015-05-17 21:57:20
过去的五天只不过是:
select date_sub(CURDATE(), interval 5 day)如果每周一天你指的是蒙-弗里,那么这个逻辑实际上相当简单。5周是一周,也就是7天(至少在美国)。所以你的问题的答案是
select date_sub(CURDATE(), interval 7 day)注意,其他天数将需要更复杂的逻辑,使用CASE。
https://stackoverflow.com/questions/30099616
复制相似问题