ISO8601 week number of the year
import datetime datetime.date(2023, 1, 1).isoweekday() def leap_year(year: int) -> bool: return year % 4 == 0 and year % 100 != 0 or year % 400 == 0 for year in range(2001, 2101): weekday = datetime.date(year, 1, 1).isoweekday() n_days = 366 if leap_year(year) else 365 weeks = 0 if weekday <= 4: # Monday Tuesday Wednesday Thursday weeks += 1 # Monday -7(1) Tuesday -6(2) Wednesday -5(3) n_days = n_days - (8 - weekday) else: # Friday Saturday Sunday # Friday -3(5) Saturday -2(6) Sunday -1(7) n_days = n_days - (8 - weekday) quotient, remainder = divmod(n_days, 7) if not remainder: weeks += quotient else: last_weekday = datetime.date(year, 12, 31).isoweekday() weeks += quotient if last_weekday >= 4: weeks += 1 print(f'year: {year}, weeks: {weeks}')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2022-02-10 PostgreSQL: non-interactive input password
2022-02-10 Git: 测试脚本
2022-02-10 Grade: conf
2022-02-10 Nginx: Configuration
2022-02-10 Git: checkout all remotes branches
2022-02-10 Node: URL