JS计算24节气的方法

function getjq(yyyy,mm,dd){
mm = mm-1;
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758);
var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至");
var solarTerms = "";
//  此方法是获取该日期是否为某节气
//    var tmp1 = new Date((31556925974.7*(yyyy-1900)+sTermInfo[mm*2+1]*60000)+Date.UTC(1900,0,6,2,5));
//    var tmp2 = tmp1.getUTCDate();
//    if (tmp2==dd)
//        solarTerms = solarTerm[mm*2+1];
//    console.log(solarTerms);
//    tmp1 = new Date((31556925974.7*(yyyy-1900)+sTermInfo[mm*2]*60000)+Date.UTC(1900,0,6,2,5));
//    tmp2= tmp1.getUTCDate();
//    if (tmp2==dd)
//        solarTerms = solarTerm[mm*2];

//  此方法可以获取该日期处于某节气
while (solarTerms==""){ 
var tmp1 = new Date((31556925974.7*(yyyy-1900)+sTermInfo[mm*2+1]*60000)+Date.UTC(1900,0,6,2,5));
var tmp2 = tmp1.getUTCDate();
if (tmp2==dd) solarTerms = solarTerm[mm*2+1];
tmp1 = new Date((31556925974.7*(yyyy-1900)+sTermInfo[mm*2]*60000)+Date.UTC(1900,0,6,2,5));
tmp2= tmp1.getUTCDate(); if (tmp2==dd) solarTerms = solarTerm[mm*2];
if(dd>1){
dd=dd-1;
}else {
mm=mm-1;
  if(mm<0){
    yyyy=yyyy-1; mm=11;
  }
  dd=31;
  }
}
return solarTerms;
}

 

posted @ 2017-09-06 14:08  Miracle--  阅读(4835)  评论(0编辑  收藏  举报