d_r*_*ney 4 python datetime loops calendar date
所以我是 Python 的初学者,并且一直在使用 datetime、time 和 timedelta 库。我正在尝试创建一段代码,从今天(无论今天发生什么)大约两个月前(exact_two_months_date)为我提供日期。问题是,我想找到大约那个日期。两个月前,并在该周的星期一开始实际的 start_date。所以理论上,实际开始日期不会正好是两个月前。从今天起,将是两个月前的星期一开始的一周。
Example pseudocode:
    today = '20150425' ## '%Y%m%d' ... Saturday
    exact_two_months_date = '20150225' ## EXACTLY two months ago ... Wednesday
    start_date = '20150223' ## this is the Monday of that week two months ago
那么如何找到上面的“start_date”呢?如果两个月前的一天从星期六或星期日开始,那么我只想去下一个星期一。希望这很清楚并且有意义......一旦我找到开始日期,我想每天(仅工作日)增加到“今天”。
感谢任何反馈,谢谢。
使用日期计算python-dateutil
如果对第三方包的依赖是一个选项,那么? python-dateutil提供了一种方便的方法来计算日期。
浏览文档?relativedelta以查看支持的大量参数。包需要对日期进行的计算越多,辅助模块就越能dateutil证明其依赖性。有关它所提供的更多灵感,请参阅?示例页面。
快速通关:
>>> import datetime
>>> from dateutil.relativedelta import relativedelta
>>> today = datetime.date.today()
>>> two_m_ago = today - relativedelta(months=2)
>>> # print two_m_ago ~> datetime.date(2015, 2, 25)
>>> monday = two_m_ago - datetime.timedelta(days=two_m_ago.weekday())
>>> # print monday ~> datetime.date(2015, 2, 23)
获取星期一weekday()
一旦我们在变量中获得两个月前的日期two_m_ago,我们就会weekday()从中减去 的索引。该指数适用0于周一,一直持续到6周日。如果two_m_ago已经是星期一,那么减去 by0不会引起任何变化。
| 归档时间: | 
 | 
| 查看次数: | 3141 次 | 
| 最近记录: |