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


年:
月:
日:






你可能感兴趣的:(编程示例,javascript,编程示例,计算星期几)