美文网首页
Day of Week很好记录一下

Day of Week很好记录一下

作者: 三三At你 | 来源:发表于2017-05-11 20:41 被阅读0次

    算法中引用的是由Tomohiko Sakamoto 提供的简洁函数代码
    代码如下:
    整体思路如下将一年看成364天(可以被7整除)
    其中如果将2月看成27天
    //31 27 31 30 31 30 31 31 30 31 30 31
    //3 6 3 2 3 2 3 3 2 3 2 3 月天数mod7
    //3 9 12 14 17 19 22 25 27 30 32 35月数的累加和
    //0 3 2 5 0 3 5 1 4 6 2 4 月数-1的累加和mod7得到数组
    如1年2月某日
    1月有31天被7除余3 多出的3天加到2月的天数里
    最后对7取余
    y/4 - y/100 + y/400 //算出到y年12月31日为止的闰年多出29号天数的个数
    y +y/4 - y/100 + y/400//上市加上y年12月31日为止每年少算一天的个数
    当x年y月z日时
    如果月数小于2月 则应当计算y-1年多出的天数
    即y -= m < 3;
    y +y/4 - y/100 + y/400 + t[m-1] + d/加上1到m-1月多出天数对7取余再加上当月的天数/
    最后对7求余的出星期。
    1年1月1日为星期一

    intdayofweek(inty,intm,intd)/* 0 = Sunday */
    {
    staticintt[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
    y -= m < 3;
    return(y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
    }
    

    相关文章

      网友评论

          本文标题:Day of Week很好记录一下

          本文链接:https://www.haomeiwen.com/subject/zilatxtx.html