• 编程示例:蔡勒公式计算某一天是星期几 公式来源于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页面的源代码如下:


    年:
    月:
    日:






  • 相关阅读:
    【Python自然语言处理】使用SVM、随机森林法、梯度法等多种方法对病人罹患癌症预测实战(超详细 附源码)
    AV1 编码标准环路滤波和后处理技术概述
    leetcode3. 无重复字符的最长子串 [滑动窗口]
    javascript回调函数有什么用
    高斯模糊滤镜
    在进行自动化测试,遇到验证码的问题,怎么办?
    IDEA2023中使用SpringBoot整合Lombok全过程及详细用法
    [山东科技大学OJ]1068 Problem H: 液晶显示
    NX二次开发UF_CAM_set_auto_blank 函数介绍
    uniapp简单实现搜索--历史记录功能
  • 原文地址:https://blog.csdn.net/gggwfn1982/article/details/133282874