我正在尝试创建一个程序,它将以三种不同的方式计算相同的日期。我目前只能计算星期几,因为我需要用它来计算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;
}
答案 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;