我需要每周执行一次报告,每周从星期六开始,直到星期五结束。但是,由于datetime或Calendar模块的星期从星期一开始,所以我无法使用WEEKDAY选项。
我尝试了以下选项,但是星期六它仍然给我5,是否有任何选项可以将工作日设置为星期六,所以星期六是0?这样我就可以从当前日期减去它以获得所需的日期或任何其他解决方案来达到相同的目的
例如,如果我在8月30日运行报表,则应获取8月18日至8月24日的数据
import calendar
calendar.setfirstweekday(calendar.SATURDAY)
calendar.firstweekday()
5
答案 0 :(得分:0)
它给您星期六的5,因为0是星期一。
>>> calendar.setfirstweekday(calendar.MONDAY)
>>> calendar.firstweekday()
0
答案 1 :(得分:0)
感谢帖子Python: give start and end of week data from a given date根据我的需要对其进行了修改
dt = datetime.now()
start = (dt - timedelta(days = (dt.weekday() + 2) % 7)) - timedelta(days=7)
end = (start + timedelta(days=6))
print(start.strftime("%Y-%m-%d"))
print(end.strftime("%Y-%m-%d"))