• 编程示例:蔡勒公式计算某一天是星期几 公式来源于1886年


    计算星期可用   蔡勒(Zeller)公式(只适合于1582年10月15日之后的情形):   

       W   =   Y   +   [Y/4]   +   [C/4]   -   2C   +   [13(M+1)/5]   +   D   -   1        
       公式中的符号含义如下:               C:世纪数减一(年的高两位数);               Y:年(年的低两位数);               M:月(M大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的                     13、14月来计算,比如2005年1月1日要看作2004年的13月1日来计算);               D:日;               []代表取整,即只要整数部分。               W:星期;W对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,                     5-星期五,6-星期六               注意负数不能按习惯的余数的概念求余数,只能按数论中的余数的定义求余。为了               方便计算,我们可以给它加上一个7的整数倍,使它变为一个正数。           以2005年2月14日为例:C=20,Y=4,M=14,D=14              
       W   =   4   +   [4/4]   +   [20/4]   -   2*20   +   [26*(14+1)/10]   +   14   -   1     =   4   +   1           +   5             -   40       +   39                           +   14   -   1                 
           =   22   (除以7余1)       所以2005年2月14日是星期一。  
    //get_day_from_year_month_day(2023,9,25)    1
    //get_day_from_year_month_day(2005,2,14)  
    /以下为Javascript实现代码。
    function get_day_from_year_month_day(p_year,p_month,p_day)
    {
    var Y=p_year%100;
    var C=(p_year-Y)/100;
    var M=p_month;
    var D=p_day;

    if(M<3)
    {
      M=M+12;
      Y=Y-1;
    }
     W=Y+Math.floor(Y/4)+Math.floor(C/4)-2*C+Math.floor(13*(M+1)/5)+D-1;
     return W%7;
    }


    测试用的html页面的源代码如下:


    年:
    月:
    日:






  • 相关阅读:
    【slowfast 损失函数改进】深度学习网络通用改进方案:slowfast的损失函数(使用focal loss解决不平衡数据)改进
    eclipse项目导入教程
    Java封装一个根据指定的字段来获取子集的工具类
    13.真刀实枪做项目---博客系统(页面设计)
    Docker 安装 MySQL
    后台部署运维零碎总结
    一文了解大模型工作原理——以ChatGPT为例
    30分钟彻底弄懂 synchronized 锁升级过程
    k8s学习
    投稿有礼,双社区签约博主名额等你赢!
  • 原文地址:https://blog.csdn.net/gggwfn1982/article/details/133282874