较快速度通过年月日计算星期的算法

本文介绍了一个用于计算特定日期是星期几的算法,并提供了一个具体的C语言函数实现。该函数通过输入年、月、日参数,返回对应的星期数值。

函数参数: year-年, month-月, day-日

函数返回: 0-星期天, 1-星期一, 2-星期二, 3-星期三, 4-星期四, 5-星期五, 6-星期六


static int calcWeekDay(int year, int month,int day)
{
      const int arr[13]={0,0,3,3,6,1,4,6,2,5,0,3,5};
      int calc;
      int weekday;

      year %= 400;

      if ((year==0||year%4==0&&year%100!=0)&&month<3)
         calc = 5;
      else
         calc = 6;

      weekday = (year+year/4-year/100+arr[month]+day+calc)%7;

      return weekday;
}

算法的精髓主要在于arr数组的使用, 有兴趣的朋友可以深入理解本函数, 不想浪费时间可以直接调用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值