蔡勒公式:计算某一天是星期几(C代码)

蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几。

w=y+[y/4]+[c/4]-2c+[13(m+1)/5]+d-1

—— 蔡勒(Zeller)公式

符号意义如下:
w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世纪,取值为经历过的世纪,而不是当前世纪。如2019年是21世纪,c取值20。
y:年,取后两位数。如2019年,y取值19
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)
d:日
[ ]代表取整,即只要整数部分。

C代码如下:
#include <stdio.h>

unsigned char Zeller_formula(unsigned char y,unsigned char m,unsigned char d)
{
unsigned char c,w;
c=21-1; //默认为21世纪.c表示已经经历过的世纪
if(m<3)
{
m+=12;
y-=1;
}
w=(y+y/4+c/4-2c+(13(m+1)/5)+d-1)%7;
if(w==0)return 7;
else return w;
}
main()
{
printf("week=%d ",Zeller_formula(19,1,1));
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值