c - 公历。如何查找星期一?

标签 c

你们谁能帮我解释一下它的逻辑吗? 根据公历,今天是星期一,日期为 01 01 01。如果通过键盘输入任意年份,请编写一个程序,找出今年的 1 月 1 日是星期几。

最佳答案

您正在寻找Zeller's Congruence ,它会告诉您任何给定日期是星期几。

看起来像这样:

int getDayOfWeek(int day, int month, int year) {

    int aa = (14 - month) / 12;
    int yy = year - aa;
    int mm = (month + (12 * aa)) - 2;

    int dayOfWeek = (day + yy + (yy / 4) - (yy / 100) + (yy / 400) + ((31 * mm) / 12)) % 7;

    return ((dayOfWeek + 6) % 7) + 1;
}

该函数返回 ISO 格式的日期,其中星期一 == 1 且星期日 == 7

关于c - 公历。如何查找星期一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17452575/

相关文章:

c - 递增变量直到溢出的循环结构?

c++ - 使用预处理器对 C/C++ 进行元编程

无法为结构成员赋值

C 变量传输返回错误

Android native - 用jni写的native代码如何在root权限下运行?

c - 优化文字解析器

c++ - 在结构中初始化结构

C 编程将字符数组复制到二维字符数组

c - c中结构体返回值出现逻辑错误

使用下一个代码语句的 C 宏或 GCC 指令