首页 > 其他分享 >ISO8601 week number of the year

ISO8601 week number of the year

时间:2024-02-10 20:33:06浏览次数:18  
标签:week number datetime leap year weeks

 

 

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}')

 

标签:week,number,datetime,leap,year,weeks
From: https://www.cnblogs.com/dissipate/p/18013034

相关文章

  • less报错,Error evaluating function `unit`: the first argument to unit must be a n
    1、less-loader版本太高了,可以降低版本2、lessc的执行参数里面增加一个参数--math=always3、可以关闭严格模式{loader:"less-loader",options:{lessOptions:{strictMath:false,},},}, 4、vite配置可以设置math:"always",......
  • Trygub Number
    参考资料做「NOI2017」整数的时候了解到有这个东西,支持对于\(B\)进制数\(X\):加上\(x\cdotB^y\),复杂度为\(\mathcal{O}(\logV+\logn)\)。查询第\(k\)位的值,复杂度为\(\mathcal{O}(\logV+\logn)\)。复杂度是瞎写的,反正就是一个\(\log\)。具体思路是维护一个......
  • 特征识别码(File Identifier) 文件索引号(File Index Number,FID)
    在Windows系统中,每个文件和文件夹都有一个唯一的标识符,称为特征识别码(FileIdentifier)。特征识别码是用于标识文件系统中文件或文件夹的一种机制,通常是一个整数值。不同的文件系统和操作系统可能会采用不同的方式生成特征识别码。在Windows文件系统中,每个文件或文件夹都有一......
  • [pwn]hgame2024 week1 WriteUp
    目录1.EzSignIn2.ezshellcode3.EldenRandomChallenge1.EzSignIn签到题,直接nc2.ezshellcodechecksec,保护全开64位程序丢IDA跟进一下myread函数可以看到会执行写入的内存,但有两个点一是长度限制,可以通过整型溢出绕过,二是myread函数会检查写入的内容,必须为字母或数字看......
  • Yearning安装
    1、下载Yearning包wgethttps://github.com/cookieY/Yearning/releases/download/2.3.5/Yearning-2.3.5-linux-amd64.zip 2、安装YearningmvYearning-2.3.5-linux-amd64.zip/data/tool/yearningunzipYearning-2.3.5-linux-amd64.zip 3、填写配置文件cd/data......
  • SMU Winter 2024 div2 ptlks的周报Week 2(1.29-2.4)
    这周学习到的知识点有斯特林数(F鸡数题!)F鸡数题!思路第二类斯特林数代码#include<bits/stdc++.h>#defineintlonglong#defineMOD1000000007usingnamespacestd;intn,m,f[100005],fi[100005];intqpow(inta,intn){ intans=1; while(n){ if(n&1){ ......
  • 24.02 week 1 营业日志
    02.01没补完。T1考虑把区间从短到长排列后双指针,那么需要维护一个集合,加区间删区间询问是否有点被覆盖\(m\)次,这个SGT就行了。02.02T1现在不想写。T2这不就是P9981。考虑这个字典序怎么维护,建分层最长路,在每一层中维护所有节点的相对顺序,则比对两个后继只用比对当前......
  • CF620E New Year Tree
    CF620ENewYearTree题意:给出一棵n个节点的树,根节点为1。每个节点上有一种颜色ci​。m次操作。操作有两种:1uc:将以u为根的子树上的所有节点的颜色改为c。2u:询问以u为根的子树上的所有节点的颜色数量。1<=c<=60。由于c的范围,可以用一个整数来表示每棵子......
  • P9309 [EGOI2021] Number of Zeros题解
    模拟赛时以为是进位制的题目,结果还做出来了。此题解解法与其它相似,但观察的角度不同(作者的脑回路不同)。此题问\(a\simb\)的最小公倍数中后导\(0\)的个数,即求其中\(2\)和\(5\)个数的最小值。分别计算即可,想到进位制,以\(a=10\),\(b=12\)时\(2\)的个数为例:1001(9)......
  • CF1687D Cute number 题解
    题目链接点击打开链接题目解法一个数\(c\)是可爱(下文称为合法)的,当且仅当\(c\in[x^2,x(x+1)]\)令\(a_i\)属于\([x_i,x_i(x_i+1)]\)一个显然的范围是\(x_1\le2\times10^6\)考虑枚举\(x_1\)现在说明一个结论:\(x_1\)固定时,\(x_i\)也固定了说明:不难发现,合法的不合......