分享

万年历代码

 任敏和 2010-12-23
万年历代码
发表日期:2007-6-5 7:18:00 出处:网络 作者:未知 发布人:ydhy 已被访问 181

2010年12月
23
云杜红叶
星期四

庚寅年【虎】
十一月十八
欢迎您

 

万年历代码:

</SPAN>
<DIV></DIV>
<TABLE height=160 width=180 bgColor=#ffeef7 background=bj.gif border=0>
<TBODY>
<TR>
<TH class=style65 scope=col width=180>
<P align=center><FONT color=#ff0000>
<SCRIPT language=JavaScript>
<!--
var solaryear;         //输出或输入之西历年份
var solarmonth;      // 西历月
var solardate;         //西历日                                                          
var lunaryear;        // 输出或输入之农历年份                                            
var lunarmonth;       //农历月                                                           
var lunardate;        // 农历日                                                          
var weekday;           //  该日为星期几   (   0==星期日,   1==星期一,   ...   )          
var kan;               //      该日天干           (   0==甲,   1==乙,   ...,   9==癸   ) 
var chih;              //     该日地支           (   0==子,   1==丑,   ...,   11==亥   )
var   basedays;                   /*   到西历   1   月   1   日到农历正月初一的累积日数   */
var   intercalation;         /*   闰月月份.   0==此年没有闰月   */                          
var   baseweekday;             /*   此年西历   1   月   1   日为星期几再减   1   */         
var   basekanchih;             /*   此年西历   1   月   1   日之干支序号减   1   */         
/* 数组数字分别为: 西历1月1日到农历正月初一的累积日数 ,闰月月份. 0==此年没有闰月,此年西历1月1日为星期几再减1 ,此年西历1月1日之干支序号减1,此农历年每月之大小,0==小月(29日),1==大月(30日)共13项 */
lun2000 = new Array(35, 0,5, 53, 1,1,0,0,1,0,0,1,0,1,1,0,1 );     /*   2000   */  
lun2001 = new Array(23, 4,0, 59, 1,1,0,1,0,1,0,0,1,0,1,0,1 );  
lun2002 = new Array(42, 0,1,  4, 1,1,0,1,0,1,0,0,1,0,1,0,1 );  
lun2003 = new Array(31, 0,2,  9, 1,1,0,1,1,0,1,0,0,1,0,1,0 );  
lun2004 = new Array(21, 2,3, 14, 0,1,0,1,1,0,1,0,1,0,1,0,1 );     /*   2004   */  
lun2005 = new Array(39, 0,5, 20, 0,1,0,1,0,1,1,0,1,0,1,0,1 );  
lun2006 = new Array(28, 7,6, 25, 1,0,1,0,1,0,1,0,1,1,0,1,1 );  
lun2007 = new Array(48, 0,0, 30, 0,0,1,0,0,1,0,1,1,1,0,1,1 );  
lun2008 = new Array(37, 0,1, 35, 1,0,0,1,0,0,1,0,1,1,0,1,1 );     /*   2008   */  
lun2009 = new Array(25, 5,3, 41, 1,1,0,0,1,0,0,1,0,1,0,1,1 );  
lun2010 = new Array(44, 0,4, 46, 1,0,1,0,1,0,0,1,0,1,0,1,1 );  
lun2011 = new Array(33, 0,5, 51, 1,0,1,1,0,1,0,0,1,0,1,0,1 );  
lun2012 = new Array(22, 4,6, 56, 1,0,1,1,0,1,0,1,0,1,0,1,0 );     /*   2012   */  
lun2013 = new Array(40, 0,1,  2, 1,0,1,1,0,1,0,1,0,1,0,1,0 );  
lun2014 = new Array(30, 9,2,  7, 0,1,0,1,0,1,0,1,1,0,1,0,1 );  
lun2015 = new Array(49, 0,3, 12, 0,1,0,0,1,0,1,1,1,0,1,0,1 );  
lun2016 = new Array(38, 0,4, 17, 1,0,1,0,0,1,0,1,1,0,1,1,0 );     /*   2016   */  
lun2017 = new Array(27, 6,6, 23, 0,1,0,1,0,0,1,0,1,0,1,1,1 );  
lun2018 = new Array(46, 0,0, 28, 0,1,0,1,0,0,1,0,1,0,1,1,0 );  
lun2019 = new Array(35, 0,1, 33, 0,1,1,0,1,0,0,1,0,0,1,1,0 );  
lun2020 = new Array(24, 4,2, 38, 0,1,1,1,0,1,0,0,1,0,1,0,1 );     /*   2020   */  
lun2021 = new Array(42, 0,4, 44, 0,1,1,0,1,0,1,0,1,0,1,0,1 );  
lun2022 = new Array(31, 0,5, 49, 1,0,1,0,1,1,0,1,0,1,0,1,0 );  
lun2023 = new Array(21, 2,6, 54, 0,1,0,1,0,1,0,1,1,0,1,0,1 );  
lun2024 = new Array(40, 0,0, 59, 0,1,0,0,1,0,1,1,0,1,1,0,1 );     /*   2024   */  
lun2025 = new Array(28, 6,2,  5, 1,0,1,0,0,1,0,1,0,1,1,1,0 );  
lun2026 = new Array(47, 0,3, 10, 1,0,1,0,0,1,0,0,1,1,1,0,1 );  
lun2027 = new Array(36, 0,4, 15, 1,1,0,1,0,0,1,0,0,1,1,0,1 );  
lun2028 = new Array(25, 5,5, 20, 1,1,1,0,1,0,0,1,0,0,1,1,0 );     /*   2028   */  
lun2029 = new Array(43, 0,0, 26, 1,1,0,1,0,1,0,1,0,0,1,0,1 );  
lun2030 = new Array(32, 0,1, 31, 1,1,0,1,1,0,1,0,1,0,1,0,0 );  
lun2031 = new Array(22, 3,2, 36, 0,1,1,0,1,0,1,1,0,1,0,1,0 );  
 
 var firstyear=2000;
 var lastyear =2031;
 
var solarcal = new Array(31,28,31,30,31,30,31,31,30,31,30,31);  
      
 /*   西历年每月之累积日数,   平年与闰年   */  
var solardays0=new Array(0,   31,   59,   90,   120,   151,   181,   212,   243,   273,   304,   334,   365,   396 );
var solardays1=new Array(0,   31,   60,   91,   121,   152,   182,   213,   244,   274,   305,   335,   366,   397 );

 /*   求此西历年是否为闰年,   返回   0   为平年,   1   为闰年   */  
function getleap( year )  
{  
          if   (year%400 ==0)  
            return   1;  
          else if(   year   %   100   ==   0   )  
            return   0;  
          else if(   year   %   4   ==   0   )  
            return   1;  
          else  
            return   0;  
}  
function calconv_lun( solaryear,solarmonth,solardate )/*西历转农历*/
{
var   leap,   d,   sm,   y,   im,   l1,   l2,   acc,   i,   lm,   kc;  
 
 if(solaryear<=firstyear ||solaryear>lastyear)  
    return   1;  
    sm =solarmonth-1;
 if(sm<0 || sm>11)  
    return   2;
 leap = getleap(solaryear );  
 if(sm ==1 )  
  d =leap+28;  
 else  
  d =solarcal[sm];  
 if(solardate<1 || solardate>d)  
  return3;
 y = solaryear - firstyear;  
 acc = eval("solardays"+leap+"[sm]+solardate");  
 
 weekday   = (acc + eval("lun"+solaryear+"[2]")) % 7;  
 
 
 if   (acc   <=   eval("lun"+solaryear+"[0]"))  
 {  
   y--;  
   lunaryear = solaryear - 1;  
   leap   =   getleap(lunaryear);  
   sm   +=   12;  
   acc   =  eval("solardays"+leap+"[sm]+solardate");  
 }  
 else  
   lunaryear   = solaryear; 
  
 kc   =   acc   +   eval("lun"+lunaryear+"[3]");  
 kan   =   kc%10;
 chih  =   kc%12;
 
 l1   =    eval("lun"+lunaryear+"[0]"); 
 for(i=0;   i<13;   i++)  
 {  
  l2 = l1 + eval("lun"+lunaryear+"[i+4]")   +   29;  
  if(acc <= l2 )  
        break;  
  l1   =   l2;  
 }  
 lunarmonth = i + 1;  
 lunardate  = acc - l1;  
 
 im = eval("lun"+lunaryear+"[1]");  
 if(im!= 0 && lunarmonth > im )  
 {  
  lunarmonth--;  
  if(lunarmonth == im   )  
      lunarmonth = -im;  
 }  
 if(lunarmonth   >   12   )  
    lunarmonth -=12;  
 return (lunaryear+" "+lunarmonth+" "+lunardate+" "+weekday+" "+kan+" "+chih);         
}  
function calconv_sol( lunaryear,lunarmonth,lunardate )/*农历转西历*/
{
 var   leap,   d,   sm,   y,   im,   l1,   l2,   acc,   i,   lm,   kc;  
  if(lunaryear<firstyear || lunaryear >=lastyear   )  
    return   1;  
  y = lunaryear - firstyear;  
  im = eval("lun"+lunaryear+"[1]");  
  lm = lunarmonth;  
  if(lm < 0)  
  {
    if(lm!= -im)  
      return   2;  
  }  
  else if(lm<1 || lm>12)  
      return   2;  
  if(im!=0)  
  {  
   if(lm>im)  
    lm++;  
   else if(lm == -im)  
    lm = im + 1;  
  }  
  lm--;  
  if(lunardate > eval("lun"+lunaryear+"[lm+4]+29") )  
    return   3;  
  acc   =  eval("lun"+lunaryear+"[0]");   
  for(i=0;i<lm;i++)  
    acc+= eval("lun"+lunaryear+"[i+4]+29");  
  acc+= lunardate;  
  leap = getleap(lunaryear);  
  for(i=13;i>=0;i--)  
   if(acc > eval("solardays"+leap+"[i]"))  
      break;  
  solardate = acc - eval("solardays"+leap+"[i]");  
  if(i<=11)  
  {  
     solaryear   = lunaryear;  
     solarmonth  = i+1;  
  }  
  else  
  {  
     solaryear =  lunaryear + 1;  
     solarmonth = i - 11;  
  }  
  leap = getleap(solaryear);  
  y = solaryear - firstyear;  
  acc = eval("solardays"+leap+"[solarmonth-1]") + solardate;  
  weekday = (acc + eval("lun"+solaryear+"[2]"))%7;  
  kc = acc + eval("lun"+solaryear+"[3]");  
  kan = kc%10;  
  chih = kc%12;  
 return (solaryear+" "+solarmonth+" "+solardate+" "+weekday+" "+kan+" "+chih);         
}
var D1=new Date();
var yy=D1.getYear();
var mm=D1.getMonth()+1;
var dd=D1.getDate();
var ww=D1.getDay();
if(yy<1900) //某些js得到的是和1990的差距年
 yy+=1900;
var Dn="初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十";
Dn=Dn.split(";");
var Mn="正月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
Mn=Mn.split(";");

var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");
var Animals=new Array("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪");
var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至")
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)
//===== 某年的第n个节气为几日(从0小寒起算)
function sTerm(y,n) {
   var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000  ) + Date.UTC(1900,0,6,2,5) )
   return(offDate.getUTCDate())

var ss=calconv_lun(yy,mm,dd);
//var sss=calconv_sol(2005,12,2);
if (weekday==0) ww="<font color=RED>星期日";
if (weekday==1) ww="星期一";
if (weekday==2) ww="星期二";
if (weekday==3) ww="星期三";
if (weekday==4) ww="星期四";
if (weekday==5) ww="星期五";
if (weekday==6) ww="<font color=RED>星期六";

var bsYear;
var bsDate;
var bsWeek;
var bsYear2;
var bsDate2;
var bsjr="<font color=#9B4E00 style=''FONT-SIZE: 10pt''>云杜红叶</font>";
var bsjr1="<font color=#9B4E00 style=''FONT-SIZE: 10pt''>欢迎您</font>";
bsWeek=ww;
bsDate=yy+"年"+mm+"月";
bsDate2=dd;
if((lunaryear<2000) ||(lunaryear>2031))
 bsYear="农历";
else
 bsYear=cyclical(lunaryear-1900+36) + "年【"+Animals[(lunaryear-4)%12]+"】";

  if(lunarmonth<0)
   bsYear2="闰" + Mn[-lunarmonth-1]+Dn[lunardate-1];
 else
   bsYear2=Mn[lunarmonth-1]+Dn[lunardate-1];
  
 if(mm==1&&dd==1) bsjr="元旦";
 if(mm==2&&dd==14) bsjr="情人节";
 if(mm==3&&dd==8) bsjr="妇女节";
 if(mm==3&&dd==12) bsjr="植树节";
 if(mm==3&&dd==15) bsjr="消费者权益日";
 if(mm==4&&dd==1) bsjr="愚人节";
 if(mm==5&&dd==1) bsjr="劳动节";
 if(mm==5&&dd==4) bsjr="青年节";
 if(mm==5&&dd==12) bsjr="护士节";
 if(mm==5&&dd==15) bsjr="国际家庭日";
 if(mm==5&&dd==31) bsjr="世界无烟日";
 if(mm==5&&weekday==0&&dd>7&&dd<15) bsjr="母亲节";
 if(mm==6&&dd==1) bsjr="儿童节";
 if(mm==6&&weekday==0&&dd>14&&dd<22) bsjr="父亲节";
 if(mm==7&&dd==1) bsjr="建党节";
 if(mm==8&&dd==1) bsjr="建军节";
 if(mm==9&&dd==10) bsjr="教师节";
 if(mm==9&&dd==27) bsjr="世界旅游日";
 if(mm==10&&dd==1) bsjr="国庆节";
 if(mm==10&&dd==5) bsjr="世界教师日";
 if(mm==10&&dd==31) bsjr="万圣节";
 if(mm==11&&weekday==4&&dd>21&&dd<29) bsjr="感恩节";
 if(mm==12&&dd==25) bsjr="圣诞节";
 
 if(lunarmonth==1&&lunardate==1) bsjr1="春节";
 if(lunarmonth==1&&lunardate==15) bsjr1="元宵节"; 
 if(lunarmonth==2&&lunardate==2) bsjr1="中和龙抬头";
 if(lunarmonth==5&&lunardate==5) bsjr1="端午节";
 if(lunarmonth==7&&lunardate==7) bsjr1="七夕节";
 if(lunarmonth==7&&lunardate==15) bsjr1="中元(鬼)节";
 if(lunarmonth==8&&lunardate==15) bsjr1="中秋节"; 
 if(lunarmonth==9&&lunardate==9) bsjr1="重阳节";
 if(lunarmonth==12&&lunardate==8) bsjr1="腊八节"; 
 if(lunarmonth==12&&lunardate==23) bsjr1="小年";
 if(lunarmonth==12&&lunardate==24) bsjr1="扫房日";
 //节气
 var tmp,tmp1;
 tmp=sTerm(yy,(mm-1)*2);
 tmp1=sTerm(yy,(mm-1)*2+1);
 if(tmp==dd)
  bsjr1=bsjr1+" "+solarTerm[(mm-1)*2];
 if(tmp1==dd)
  bsjr1=bsjr1+" "+solarTerm[(mm-1)*2+1];
 
function cyclical(num) {
  return(Gan[num%10]+Zhi[num%12])
}
function CAL(){
 document.write("<center><table border=1 cellspacing=3 width=105 bordercolor=#000000 bgcolor=#FFFFFF height=110 cellpadding=2");
document.write("<tr><td align=center><b><font style=''FONT-SIZE: 12pt'' color=#008040>"+bsDate+"</font><br><font face=Arial style=''FONT-SIZE: 20pt'' color=#FF8040>"+bsDate2+"</font><br><font color=#008040><span style=''FONT-SIZE: 10pt''>");
document.write("<font color=red style=''FONT-SIZE: 10pt''>"+bsjr+"</font><br>"+bsWeek+"</span><br>"+" </b>");
document.write("<font color=#9B4E00 style=''FONT-SIZE: 10pt''>"+bsYear+"<br>"+bsYear2+"<br>"+"<font color=red style=''FONT-SIZE: 10pt''>"+bsjr1+"</font></font>"+"</td></tr></table></center>");
/*document.write("<center><table border=''1'' cellspacing=''3'' width=''105'' bordercolor=''#000000'' bgcolor=''#FFFFFF'' height=''110'' cellpadding=''2''");
document.write("<tr><td align=''center''><b><font color=#008040>"+lunaryear+"年"+lunarmonth+"月"+"</font><br><font face=''Arial'' size=''6'' color=#FF8040>"+lunardate+"</font><br><font color=#008040><span style=''FONT-SIZE: 10.5pt''>");
document.write(weekday+"</span><br>"+"<br></b><font color=#9B4E00>");
document.write(kan+"<br>"+chih+"</td></tr></table></center>");
*/
}
//-->
</SCRIPT>
</FONT><SPAN class=STYLE78></SPAN><FONT color=#ff0000>
<SCRIPT language=javascript>CAL();</SCRIPT>
</FONT></P></TR></TR></TBODY></TABLE>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约