⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 日历.htm

📁 javascript的万年历 功能强大 带提醒功能 并有日记本输入
💻 HTM
📖 第 1 页 / 共 5 页
字号:
          CLD.SM.selectedIndex=11;
          if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex--;
       }
       break;
    case 'MD' :
       if(CLD.SM.selectedIndex<11) {
          CLD.SM.selectedIndex++;
       }
       else {
          CLD.SM.selectedIndex=0;
          if(CLD.SY.selectedIndex<200) CLD.SY.selectedIndex++;
       }
       break;
    default :
       CLD.SY.selectedIndex=tY-1900;
       CLD.SM.selectedIndex=tM;
 }
 changeCld();
}

var Today = new Date();
var tY = Today.getFullYear();
var tM = Today.getMonth();
var tD = Today.getDate();
//////////////////////////////////////////////////////////////////////////////

var width = "130";
var offsetx = 2;
var offsety = 8;

var x = 0;
var y = 0;
var snow = 0;
var sw = 0;
var cnt = 0;

var dStyle;
document.onmousemove = mEvn;



//节气函数
function S(y,n,pd){  //pd取值为0或1,分别表示平气和定气,该函数返回节气的D0值
  var juD=y*(365.2423112-6.4e-14*(y-100)*(y-100)-3.047e-8*(y-100))+15.218427*n+1721050.71301;//儒略日
  var tht=3e-4*y-0.372781384-0.2617913325*n;//角度
  var yrD=(1.945*Math.sin(tht)-0.01206*Math.sin(2*tht))*(1.048994-2.583e-5*y);//年差实均数
  var shuoD=-18e-4*Math.sin(2.313908653*y-0.439822951-3.0443*n);//朔差实均数
  var vs=(pd)?(juD+yrD+shuoD-erD(y,1,0)-1721425):(juD-erD(y,1,0)-1721425);
  return vs;
}
//等效标准天数
function erD(y,m,d){
  var verD=(y-1)*365+Math.floor((y-1)/4)+D0(y,m,d)-2;  //Julian的等效标准天数
  if(y>1582)
    verD+=-Math.floor((y-1)/100)+Math.floor((y-1)/400)+2;  //Gregorian的等效标准天数
  return verD;
}
//判断Gregorian历还是Julian历  
function ifGr(y,m,d,opt){  //阳历y年m月(1,2,..,12,下同)d日,opt=1,2,3分别表示标准日历,Gregorge历和Julian历

  if(opt==1){
    if(y>1582||(y==1582&&m>10)||(y==1582&&m==10&&d>14))
      return(1);  //Gregorian
    else 
      if(y==1582&&m==10&&d>=5&&d<=14)
        return(-1);  //空
      else 
        return(0);  //Julian
  }
  
  if(opt==2)
    return(1);  //Gregorian
  if(opt==3)
    return(0);  //Julian

}
//日差天数
function D0(y,m,d){
  var ifG=ifGr(y,m,d,1);
  var monL=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
  if(ifG)
    if((y%100!=0&&y%4==0)||(y%400==0))
      monL[2]+=1;
    else ;
  else
    if(y%4==0)
      monL[2]+=1;
    else ;
  var verD=0;
  for(var i=0;i<=m-1;i++){
    verD+=monL[i];
  }
  verD+=d;
  if(y==1582){
    if(ifG==1)
      verD-=10;
    if(ifG==-1)
      verD=1/0;  //infinity 
  }
  return verD;
}

//反日差天数
function antiD0(y,x){
  var k=1;
  for(var j=1;j<=12;j++){
    var mL=D0(y,j+1,1)-D0(y,j,1);
    if(x<=mL||j==12){
      var k=j;
      break;
    }
    else 
       x-=mL; 
  }
  return 100*k+x;
}
//将单位天的纯小数转换成如同5:08的时间格式
function dToStr(dv){
  var h=Math.floor(dv*24);
  var min=Math.floor((dv*24-h)*60);
  if(min<10)
    min='0'+min;
  return h+'时'+min+'分';
}
function tail(x){
  return x-Math.floor(x);
}
function rem(x,w){  //广义求余
  return tail(x/w)*w;
}
//天干
function gan(x){
  return x%10;
}

//地支
function zhi(x){
  return x%12;
}
//日干支
function dGz(y,m,d,h){
  var gzD=(h<23)?erD(y,m,d):erD(y,m,d)+1;
  return Math.round(rem(gzD+15,60)); 
}
//农历日数
function lunDStr(verD){
  var str='十一二三四五六七八九初十廿三';
  var vstr=str.charAt(Math.floor(verD/10)+10)+str.charAt(verD%10);
  if(verD==10)
    vstr='初十';
  return vstr;
}

//节气节日
function jqFtvl(y,m,d){
  var sjqFtvl=''; //节气节日
  var thisD0=D0(y,m,d);


  var dG=gan(dGz(y,m,d,0));
  var dZ=zhi(dGz(y,m,d,0));

  var s11=Math.floor(S(y,11,1));
  if(thisD0>=s11&&thisD0<s11+10&&dG==3)
    sjqFtvl+=' 今日入梅';
  var s13=Math.floor(S(y,13,1));
  if(thisD0>=s13&&thisD0<s13+12&&dZ==8)
    sjqFtvl+=' 今日出梅';
if(((thisD0>s11&&thisD0<s11+7&&dG>3)||(thisD0>s13&&thisD0<s13+4&&dZ<8))||((thisD0>s11)&&(thisD0<s13)))
    sjqFtvl+=' 梅雨季节';
  //三伏
  var s12=Math.floor(S(y,12,1));
  var s15=Math.floor(S(y,15,1));
  var n=(dG-7)%10+1;
  if(n<=0)
    n+=10;
  var firsrD0=thisD0-n+1;
  if(firsrD0>=s12+20&&firsrD0<s12+30)
n!=1?sjqFtvl+=' 初伏第'+n+'天':sjqFtvl+=' 今日数伏,初伏第'+n+'天';
  if(firsrD0>=s15&&firsrD0<s15+10)
n!=10?sjqFtvl+=' 末伏第'+n+'天':sjqFtvl+=' 今日末伏第'+n+'天,出伏';

  else {
  if(firsrD0>=s12+30&&firsrD0<s12+40)
    sjqFtvl+=' 中伏第'+n+'天';
  if(firsrD0>=s12+40&&firsrD0<s12+50)
    sjqFtvl+=' 中伏第'+(n+10)+'天';
  }
  //九九
  var s24=Math.floor(S(y,24,1));
  var s_24=Math.floor(S(y-1,24,1));
  var d1=thisD0-s24;
  var d2=thisD0-s_24+D0(y-1,12,31)-D0(y-1,1,0);
  if(d1>=0||d2<=80){
    if(m==12){
      w=1;
      verD=d1+1;
      if(verD>9){
        w+=1;
        verD-=9;
      }
    }
    else{
      var w=Math.floor(d2/9)+1;
      var verD=Math.round(rem(d2,9))+1;
    }
  sjqFtvl+=' '+lunDStr(w).charAt(1)+'九'+'第'+verD+'天';
  }

  return sjqFtvl;
}


//显示详细日期资料
function mOvr(v) {
   var s,festival,sjqFtvl;

   var sObj=eval('SD'+ v);
   var d=sObj.innerHTML-1;

      //sYear,sMonth,sDay,week,
      //lYear,lMonth,lDay,isLeap,
      //cYear,cMonth,cDay

   if(sObj.innerHTML!='') {
     sObj.style.cursor= 'help';
	  
      if(cld[d].solarTerms == '' && cld[d].solarFestival == '' && cld[d].lunarFestival == '')
         festival = '';
      else
         festival = '<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR="#CCFFCC"><TR><TD ALIGN="center">'+
         '<FONT COLOR="#000000" STYLE="font-size:9pt;">'+cld[d].solarTerms + ' ' + cld[d].solarFestival + ' ' + cld[d].lunarFestival+'</FONT></TD>'+
         '</TR></TABLE>';
sjqFtvl=jqFtvl(cld[d].sYear,cld[d].sMonth,cld[d].sDay)//加这个是显示数九、数伏、梅雨!
      s= '<table border="2" width="140" bordercolor="#0066CC" bgcolor="#FFFBE8" cellpadding="0" cellspacing="0"><TR><td>' +
         '<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD ALIGN="center"><FONT COLOR="#ff00ff" STYLE="font-size:9pt;">'+
         cld[d].sYear+'年'+cld[d].sMonth+'月'+cld[d].sDay+'日&nbsp;星期'+cld[d].week+'<br>'+
         '<font color="#FF8000">农历'+cld[d].cYear+'年'+(cld[d].isLeap?' 闰':' ')+cMonth(cld[d].lMonth)+'月'+cDay(cld[d].lDay)+'</font><br>'+
         '<font color="009900">'+cld[d].cYear+'年 '+cld[d].cMonth+'月 '+cld[d].cDay + '日</font>'+
    sjqFtvl+//加这个是显示数九、数伏、梅雨!
         '</FONT></TD></TR></TABLE>'+ festival +'</TD></TR></TABLE>';

      document.all["detail"].innerHTML = s;

      if (snow == 0) {
         dStyle.left = x+offsetx-(wi

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -