查找下周六的日期

2024-04-25

如何用 Python 查找下周六的日期?最好使用datetime格式为“2013-05-25”?


>>> from datetime import datetime, timedelta
>>> d = datetime.strptime('2013-05-27', '%Y-%m-%d') # Monday
>>> t = timedelta((12 - d.weekday()) % 7)
>>> d + t
datetime.datetime(2013, 6, 1, 0, 0)
>>> (d + t).strftime('%Y-%m-%d')
'2013-06-01'

I use (12 - d.weekday()) % 7计算给定日期和下周六之间的天数增量,因为weekday介于 0(星期一)和 6(星期日)之间,因此星期六是 5。但是:

  • 5 和 12 模 7 相同(是的,我们一周有 7 天:-))
  • so 12 - d.weekday()介于 6 和 12 之间,其中5 - d.weekday()介于 5 和 -1 之间
  • 所以这允许我不处理负面情况(周日为-1)。

这是适用于任何工作日的非常简单的版本(无检查):

>>> def get_next_weekday(startdate, weekday):
    """
    @startdate: given date, in format '2013-05-25'
    @weekday: week day as a integer, between 0 (Monday) to 6 (Sunday)
    """
    d = datetime.strptime(startdate, '%Y-%m-%d')
    t = timedelta((7 + weekday - d.weekday()) % 7)
    return (d + t).strftime('%Y-%m-%d')

>>> get_next_weekday('2013-05-27', 5) # 5 = Saturday
'2013-06-01'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找下周六的日期 的相关文章

随机推荐