代码之家  ›  专栏  ›  技术社区  ›  Ron

在python中获取给定周数的第一天和最后一天

  •  1
  • Ron  · 技术社区  · 6 年前

    我需要一个函数来返回 第一天和最后一天 分别是给定周数(和一年)的星期一和星期日。

    在一月一日不是星期一的几个星期里有一个困难,所以我不能用这个标准 datetime.datetime.strptime() .

    1 回复  |  直到 6 年前
        1
  •  5
  •   Ron    6 年前

    以下是解决方案:

    import calendar
    import datetime
    from datetime import timedelta
    
    def get_start_and_end_date_from_calendar_week(year, calendar_week):       
        monday = datetime.datetime.strptime(f'{year}-{calendar_week}-1', "%Y-%W-%w").date()
        return monday, monday + datetime.timedelta(days=6.9)
    

    我扩展了 this post 是的。

    更新

    第一个日历周有个陷阱。某些国家对第一周的处理方式不同。例如在德国,如果1月份的第一周少于4天,则将其计算为前一年的最后一周。有一个概述 Wikipedia 是的。