如何快速计算出星期几

有的时候需要根据日期快速计算出星期几来,我从网上搜索到一个口诀,验证了几个日期,发现还是靠谱的,这个公式的证明目前我还不会,但可以保证2000-2099的星期计算是靠谱的,其他时间我没有验证过。

const u8 month_code[][12]={
    {6,2,2,5,0,3,5,1,4,6,2,4},
    {5,1,2,5,0,3,5,1,4,6,2,4},
};

int calc_week(u8 nian,u8 yue,u8 ri)
{
	u8 isloop;
	u8 yc,mc,week;

	isloop=((nian&3)!=0)?0:1;

	yc=(nian/4+nian)%7;

	mc=month_code[isloop][yue-1];  //这里的闰年只是简单判断

	week=(yc+mc+ri)%7;

	return week;
}

简单验证下,2002-3-31是星期日,2020-2-28是星期五,2099-2-28是星期六,2032-7-28是星期三,... ...


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值