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

非标准周编号

  •  -1
  • Luke  · 技术社区  · 6 年前

    我正在为我的大学时间表网站构建一个API。默认选项是查找今天的时间表。然而,时间表系统使用的周数不同于我们通常使用的周数。

    构建URL需要的两件事之一是周数。

    TIMETABLE_URL = 'http://timetable.ait.ie/reporting/textspreadsheet;student+set;id;{}?t=student+set+textspreadsheet&days=1-5&=&periods=3-20&=student+set+textspreadsheet&weeks={}&template=student+set+textspreadsheet'
    

    周编号应从此日期开始: 27 Aug 2018 - 2 Sep 2018 . 在此之后, week 2 将是 3 Sep 2018-9 Sep 2018 等等。这应该延续到新的一年, 31 Dec 2018-6 Jan 2019 将是 week 19 . 今年总共有52周。

    我知道如何检查某个日期是否在上面的某个范围之间,但我希望避免手动设置所有日期范围。我怎么能让一个剧本知道,例如,它在9月12日的第3周?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Kevin Fang    6 年前

    使用 datetime.datetime 对象:

    from datetime import datetime
    start = datetime.strptime('20180827', '%Y%m%d')
    current = datetime.strptime('20180912', '%Y%m%d')
    print((current - start).days//7 +1) # The week number
    # Output: 3
    

    这也可以处理不同的年份。请注意,这仅在开始日期为星期一时有效。