• 2-计算星期几(基姆拉尔森计算公式)


    /*1基姆拉尔森计算公式:

    Week=(Day + 2*Month + 3*(Month+1)/5 + Year + Year/4 - Year/100 + Year/400) % 7
    (其中的Year是4位数的,如2009。“%”号是等式除7取余数)
    注意:
    i. 该公式中要把1月和2月分别当成上一年的13月和14月处理。
    例如:2008年1月4日要换成 2007年13月4日带入公式。
    ii.该式对应的与蔡勒公式有点区别:“0”为星期1,……,“6”为星期日。
    改进:
    该式可能与蔡勒公式的计算都是较为复杂,但有改进的地方:对于世纪这个概念不被引用,
    直接就是计算年代数(4位数)的!既不用再把 世纪 和 年代数(后两位)分开
    */
    #include <cstdio>
    #include <iostream>
    using namespace std;

    int main(){
    //    ios::sync_with_stdio(false);
        int y, m, d;
    //    while(cin >> y){     //超时了
    //        cin >> m >> d;
        while(~scanf("%d%d%d", &y, &m, &d)){  
            if(m == 1 || m == 2){
                y--;
                m += 12;
            }    
            int w = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400 + 1) % 7;

    //        cout << w << endl;
            printf("%d ", w);
        }
        return 0;
    }

  • 相关阅读:
    Java实现分页
    研发技能列表
    shell 函数
    养生
    再谈创新
    写代码注意事项
    排查问题方法
    简历撰写
    jenkins
    架构
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/7384353.html
Copyright © 2020-2023  润新知