当前位置: 首页> 教育> 培训 > 域名免备案_高清视频服务器_广州百度竞价开户_保定网站建设公司哪家好

域名免备案_高清视频服务器_广州百度竞价开户_保定网站建设公司哪家好

时间:2025/7/10 3:04:30来源:https://blog.csdn.net/2302_79756970/article/details/146991120 浏览次数:0次
域名免备案_高清视频服务器_广州百度竞价开户_保定网站建设公司哪家好

基姆拉尔森计算公式(Zeller's Congruence 的变体)是一种快速根据公历日期计算星期几的数学公式。其核心思想是通过对年月日的数值进行特定变换和取模运算,直接得到星期几的结果。

公式定义

对于日期 年-月-日,公式如下:

其中:

  • 月份调整:若月份为 1 月或 2 月,需视为上一年的 13 月或 14 月。例如,2024 年 1 月 1 日 → 视为 2023 年 13 月 1 日。

  • 变量含义

    • h: 星期(0=星期六, 1=星期日, 2=星期一, ..., 6=星期五)

    • d: 日(1-31)

    • m: 调整后的月份(3-14,对应原1-12月)

    • y: 调整后的年份的后两位(例如 2023 年 → 23)

    • c: 调整后的年份的前两位(例如 2023 年 → 20)


公式使用步骤

以 2024 年 8 月 15 日 为例:

通过此公式,无需逐日累加即可高效计算任意日期的星期,特别适合处理大时间跨度的日期问题。

  1. 调整月份和年份

    • 原日期:2024 年 8 月 15 日 → 无需调整(8 ≥ 3)。

    • 若为 2024 年 2 月 5 日 → 需调整为 2023 年 14 月 5 日。

  2. 拆分年份

    • c = ⌊2024/100⌋ = 20

    • y = 2024 mod  100 = 24

  3. 代入公式

    #include <iostream>
    using namespace std;int zeller(int year, int month, int day) {if (month < 3) {month += 12;year -= 1;}int c = year / 100;int y = year % 100;int h = (day + 13*(month+1)/5 + y + y/4 + c/4 + 5*c) % 7;return h; // 0=星期六, 1=星期日, ..., 6=星期五
    }int main() {int year = 2024, month = 8, day = 15;int week = zeller(year, month, day);const char* weeks[] = {"星期六", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五"};cout << weeks[week]; // 输出:星期六return 0;
    }

    注意事项

  4. 月份调整:必须将 1 月、2 月视为上一年的 13、14 月。

  5. 结果映射:公式中 h=0表示星期六,而非星期日。

  6. 适用范围:仅适用于格里高利历(公历,1582年10月15日之后)。

关键字:域名免备案_高清视频服务器_广州百度竞价开户_保定网站建设公司哪家好

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: