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 - 1, 100) + 6R(A - 1, 400), 7)
应该相当于
int week_day = (1 + 5 * (year - 1) % 4) + 4 * ((year - 1) % 100) + 6 * ((year - 1) % 400) % 7;
推荐阅读
- ios - YouTube 数据 API 错误 403 权限不足
- javascript - 使用 ScrollMagic 和 GSAP 为它们设置动画时,如何解决两个部分之间发生的溢出问题?
- r - 如何卸载旧版本的 rlang 包?
- javascript - 加载页面时如何自动滚动到没有 ID 的元素?
- python - 如何使用带有 string_agg 的子查询插入带有 SQLAlchemy ORM 的行?
- python - 设置python日志记录级别的正确方法?
- intellij-plugin - 在 IntelliJ IDEA 插件中将捆绑插件声明为依赖项
- javascript - 我无法为我的柜台项目添加颜色
- python - 如何在 tkinter 画布中创建图像幻灯片?
- azure-data-factory-2 - 如何使用 GetMetadata 活动递归获取所有文件和文件夹