计算日期为周几(蔡勒公式应用)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36336003/article/details/83657636

最近一个项目中需要用到日历功能,计算出给定日期(某个月的第一天)是周几,这里用到了蔡勒公式,需要注意的问题:
问题一
某年的1、2月计算时要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算
问题二
注意使用蔡勒公式求和(未对7取余数前)时,求出的和可能为负数,因为负数不能按习惯的余数的概念求余数,这里我们加上7的倍数直至为正数后再对7取余数

// js中计算出某个月的第一天是周几
function(y, m, d){
    // 求解cy年cm月cd日是星期几,parseInt代表取整
    var cc = parseInt(y / 100);
    var cy = y - cc * 100;
    var cm = m;
    var cd = 1;
    // 某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算
    if(m == 1 || m == 2){
      cc = parseInt((y-1) / 100);
      cy = y-1 - cc * 100;
      cm = 12 + m;
    }
    // 注意使用蔡勒公式时出现负数情况
    while(csum < 0){
      csum = csum + 7;
    }
    var fd = parseInt(csum % 7);
    return fd;
  }

代码中变量解释:
y代表
m代表
d代表
cc代表世纪-1
cy代表年(后两位数)
cm代表月(范围在3-14之间,包括3和14)
cd代表
fd代表周几

猜你喜欢

转载自blog.csdn.net/qq_36336003/article/details/83657636