已知具体的年、月、日,从而进行相应的星期计算。
核心计算采用蔡基姆拉尔森计算公式
C语言代码如下所示(公式是怎么得出来的,后面有空了继续添加):
/*引入参数为具体的年月日,例如:
Year = 2018;
Day = 1;
Month = 1;
*/
static unsigned char WeekDayCount(unsigned char Day, unsigned char Month, unsigned char Year)
{
int Weekday = 0;
if ((Month == 1) || (Month == 2))
{
Month += 12;
Year--;
}
Weekday = (Day + 2 * Month + 3 * (Month + 1) / 5 + Year + Year / 4 - Year / 100 + Year / 400) % 7;
return (unsigned char)Weekday + 1;