使用高斯算法计算星期几

时间:2018-10-24 19:15:27

标签: c

我正在尝试创建一个程序,它将以三种不同的方式计算相同的日期。我目前只能计算星期几,因为我需要用它来计算ISO星期几。我有一个可以使用的算法,它是我在代码中使用的一种算法,唯一的区别是我代码中的%符号在算法中被单词“ mod”代替。 / p>

运行此命令时,出现错误消息“%token之前的期望表达式”。我查了一下,但没有找到任何结果。我还尝试着研究其他方法,找到了Sakomoto算法,但我不完全了解它是如何工作的。为了寻求可能的解决方案,我当时想可能需要创建一个名为mod的函数,但是我不确定要在其中放置什么。

int day_of_the_week(int year)
{
int week_day;
week_day = %(1+5 * %(year - 1, 4) + 4 * %(year - 1, 100) + 6 * %(year-1, 
400), 7);
printf("The day of the week is %d\n", week_day);
return 0;
}

1 个答案:

答案 0 :(得分:1)

高斯的

  

R(1 + 5R(A-1,4)+ 4R(A-1,100)+ 6R(A-1,400),7)

应等效于

int week_day = (1 + 5 * (year - 1) % 4) + 4 * ((year - 1) % 100) + 6 * ((year - 1) % 400) % 7;