当前位置:首页 > 编程笔记 > 正文
已解决

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

来自网友在路上 155855提问 提问时间:2023-09-26 10:04:30阅读次数: 55

最佳答案 问答题库558位专家为你答疑解惑

计算星期可用   蔡勒(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页面的源代码如下:
<html>
<head></head>
<body>

年:<input id="year" type=text value=1></input>
月:<input id="month" type=text value=6></input>
日:<input id="day" type=text value=6></input>
<input type=button οnclick="calc()" value="显示星期几"></input>
<textarea id='buffer' rows="8" cols="65"></textarea>
<hr/>
<script>
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;
}

function calc()
{
  var p_year=parseInt(document.getElementById("year").value,10);
  var p_month=parseInt(document.getElementById("month").value,10);
  var p_day=parseInt(document.getElementById("day").value,10);
 
 var result= get_day_from_year_month_day(p_year,p_month,p_day);
 printf_result(result);
}

function printf_result(result)
{
 
      if(result==0)
      {
        document.getElementById("buffer").innerHTML="星期天";
     }
     else
     {document.getElementById("buffer").innerHTML="星期"+result;
     }
    
}
</script>
</body>
</html>

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"编程示例:蔡勒公式计算某一天是星期几 公式来源于1886年":http://eshow365.cn/6-13883-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!