C 用高斯算法计算星期几
我正在尝试创建一个程序,它将以三种不同的方式计算相同的日期。我目前一直在计算一周中的哪一天,因为我需要这个来计算ISO周中的哪一天。我有一个可以使用的算法,这就是我在代码中得到的算法,唯一的区别是代码中的%符号被算法中的单词“mod”替换了 当我运行此命令时,会出现一个错误,提示“在%token之前需要表达式”。我已经查过了,但没有找到任何结果。我也尝试过其他方法,找到了Sakomoto算法,但我不太明白它是如何工作的。对于一个可能的解决方案,我想我可能需要创建一个名为mod的函数,但我不完全确定需要在其中添加什么C 用高斯算法计算星期几,c,C,我正在尝试创建一个程序,它将以三种不同的方式计算相同的日期。我目前一直在计算一周中的哪一天,因为我需要这个来计算ISO周中的哪一天。我有一个可以使用的算法,这就是我在代码中得到的算法,唯一的区别是代码中的%符号被算法中的单词“mod”替换了 当我运行此命令时,会出现一个错误,提示“在%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;
}
高斯
R(1+5R(A-1,4)+4R(A-1100)+6R(A-1400),7)
应该相当于
int week_day = (1 + 5 * (year - 1) % 4) + 4 * ((year - 1) % 100) + 6 * ((year - 1) % 400) % 7;
看起来,
mod
是另一种语言中的函数。所以%(第1100年)
变成(第1年)%100
,等等,你不能简单地用%
替换函数调用。谢谢!我刚刚读了一个链接,找到了一些与此类似的东西,去掉了一些括号