萌芽MENGYA 发表于 2024-1-8 13:58:27

公历转星期公式,弥补STC8H4K64TL。

/*w=-2c+y+++d-1w%7=星期w:模拟数c:年份前两位y:年份后两位m:月份d:纪日如果月份是1月或2月则年份要减1,月数要加12。*/
void xingqi()/*公历转星期函数*/{unsigned char y,m;y=YEAR;m=MONTH;if(m==1|m==2){y=y-1;m=12+m;}zhou=(-35+y+(y/4)+(13*(m+1)/5)+DAY-1)%7;}

jwg 发表于 2024-1-8 14:14:53

挺好的{:4_250:}

xxkj2010 发表于 2024-1-8 14:46:41

我近年都用公式求星期的,主要原因是调整日期的时候不用调星期,方便。

萌芽MENGYA 发表于 2024-1-27 10:24:10

{:hug:}

jackfangxq 发表于 2024-3-12 16:29:21

{:4_174:}

21cnsound 发表于 2024-3-12 18:03:22

我记得年好像有个范围限制的

萌芽MENGYA 发表于 2024-3-13 10:20:23

21cnsound 发表于 2024-3-12 18:03
我记得年好像有个范围限制的

这个没发现呀{:smile:}

jwg 发表于 2024-3-13 11:17:50

{:4_250:}

21cnsound 发表于 2024-3-13 11:25:33

本帖最后由 21cnsound 于 2024-3-13 16:28 编辑


蔡勒公式
def zellers(i16 y, u8 m, u8 d):
    if m < 3:
      y -= 1
      m += 12
    return 353 * y + y // 4 - y // 100 + y // 400 + (148 * m - 447) // 5 + d - 295

说明:这里的//是取整运算,C51中对应整数来说用单斜杠即可

萌芽MENGYA 发表于 2024-3-13 14:10:47

21cnsound 发表于 2024-3-13 11:25
蔡勒公式
def zellers(i16 y, u8 m, u8 d):
    if m < 3:


{:victory:}

我发的是限21世纪的{:lol:}。懒得打多几句代码了{:lol:}。

话说你那"//"是啥编译器{:lol:}
页: [1] 2 3
查看完整版本: 公历转星期公式,弥补STC8H4K64TL。