1var bsYear;
2var bsDate;
3var bsWeek;
4var arrLen=22; //数组长度
5var sValue=0; //当年的秒数
6var dayiy=0; //当年第几天
7var miy=0; //月份的下标
8var iyear=0; //年份标记
9var dayim=0; //当月第几天
10var spd=86400; //每天的秒数
11
12var year1999="30;29;29;30;29;29;30;29;30;30;30;29"; //354
13var year2000="30;30;29;29;30;29;29;30;29;30;30;29"; //354
14var year2001="30;30;29;30;29;30;29;29;30;29;30;29;30"; //384
15var year2002="30;30;29;30;29;30;29;29;30;29;30;29"; //354
16var year2003="30;30;29;30;30;29;30;29;29;30;29;30"; //355
17var year2004="29;30;29;30;30;29;30;29;30;29;30;29;30"; //384
18var year2005="29;30;29;30;29;30;30;29;30;29;30;29"; //354
19var year2006="30;29;30;29;30;30;29;29;30;30;29;29;30"; //384
20var year2007="29;29;30;29;29;30;29;30;30;30;29;30"; //354
21var year2008="30;29;29;30;29;29;30;29;30;30;29;30"; //354
22var year2009="30;30;29;29;30;29;29;30;29;30;29;30;30"; //384
23var year2010="30;29;30;29;30;29;29;30;29;30;29;30"; //354
24var year2011="30;29;30;30;29;30;29;29;30;29;30;29"; //354
25var year2012="30;29;30;30;29;30;29;30;29;30;29;30;29"; //384
26var year2013="30;29;30;29;30;30;29;30;29;30;29;30"; //355
27var year2014="29;30;29;30;29;30;29;30;30;29;30;29;30"; //384
28var year2015="29;30;29;29;30;29;30;30;30;29;30;29"; //354
29var year2016="30;29;30;29;29;30;29;30;30;29;30;30"; //355
30var year2017="29;30;29;30;29;29;30;29;30;29;30;30;30"; //384
31var year2018="29;30;29;30;29;29;30;29;30;29;30;30"; //354
32var year2019="30;29;30;29;30;29;29;30;29;29;30;30"; //354
33var year2020="29;30;30;30;29;30;29;29;30;29;30;29;30"; //384
34
35var month1999="正月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
36var month2001="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
37var month2004="正月;二月;闰二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
38var month2006="正月;二月;三月;四月;五月;六月;七月;闰七月;八月;九月;十月;十一月;十二月"
39var month2009="正月;二月;三月;四月;五月;闰五月;六月;七月;八月;九月;十月;十一月;十二月"
40var month2012="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
41var month2014="正月;二月;三月;四月;五月;六月;七月;八月;九月;闰九月;十月;十一月;十二月"
42var month2017="正月;二月;三月;四月;五月;六月;闰六月;七月;八月;九月;十月;十一月;十二月"
43var month2020="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
44var Dn="初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十";
45
46var Ys=new Array(arrLen);
47Ys[0]=919094400;Ys[1]=949680000;Ys[2]=980265600;
48Ys[3]=1013443200;Ys[4]=1044028800;Ys[5]=1074700800;
49Ys[6]=1107878400;Ys[7]=1138464000;Ys[8]=1171728000;
50Ys[9]=1202313600;Ys[10]=1232899200;Ys[11]=1266076800;
51Ys[12]=1296662400;Ys[13]=1327248000;Ys[14]=1360425600;
52Ys[15]=1391097600;Ys[16]=1424275200;Ys[17]=1454860800;
53Ys[18]=1485532800;Ys[19]=1518710400;Ys[20]=1549296000;
54Ys[21]=1579881600;
55
56var Yn=new Array(arrLen); //农历年的名称
57Yn[0]="己卯年";Yn[1]="庚辰年";Yn[2]="辛巳年";
58Yn[3]="壬午年";Yn[4]="癸未年";Yn[5]="甲申年";
59Yn[6]="乙酉年";Yn[7]="丙戌年";Yn[8]="丁亥年";
60Yn[9]="戊子年";Yn[10]="己丑年";Yn[11]="庚寅年";
61Yn[12]="辛卯年";Yn[13]="壬辰年";Yn[14]="癸巳年";
62Yn[15]="甲午年";Yn[16]="乙未年";Yn[17]="丙申年";
63Yn[18]="丁酉年";Yn[19]="戊戌年";Yn[20]="己亥年";
64Yn[21]="庚子年";
65var D=new Date();
66var yy=D.getFullYear();
67var mm=D.getMonth()+1;
68var dd=D.getDate();
69var ww=D.getDay();
70if (ww==0) ww="<font color=RED>星期日</font>";
71if (ww==1) ww="星期一";
72if (ww==2) ww="星期二";
73if (ww==3) ww="星期三";
74if (ww==4) ww="星期四";
75if (ww==5) ww="星期五";
76if (ww==6) ww="<font color=green>星期六</font>";
77ww=ww;
78var ss=parseInt(D.getTime() / 1000);
79if (yy<100) yy="19"+yy;
80
81for (i=0;i<arrLen;i++)
82if (ss>=Ys[i]){
83iyear=i;
84sValue=ss-Ys[i]; //当年的秒数
85}
86dayiy=parseInt(sValue/spd)+1; //当年的天数
87
88var dpm=year1999;
89if (iyear==1) dpm=year2000;
90if (iyear==2) dpm=year2001;
91if (iyear==3) dpm=year2002;
92if (iyear==4) dpm=year2003;
93if (iyear==5) dpm=year2004;
94if (iyear==6) dpm=year2005;
95if (iyear==7) dpm=year2006;
96if (iyear==8) dpm=year2007;
97if (iyear==9) dpm=year2008;
98if (iyear==10) dpm=year2009;
99if (iyear==11) dpm=year2010;
100if (iyear==12) dpm=year2011;
101if (iyear==13) dpm=year2012;
102if (iyear==14) dpm=year2013;
103if (iyear==15) dpm=year2014;
104if (iyear==16) dpm=year2015;
105if (iyear==17) dpm=year2016;
106if (iyear==18) dpm=year2017;
107if (iyear==19) dpm=year2018;
108if (iyear==20) dpm=year2019;
109if (iyear==21) dpm=year2020;
110dpm=dpm.split(";");
111
112var Mn=month1999;
113if (iyear==2) Mn=month2001;
114if (iyear==5) Mn=month2004;
115if (iyear==7) Mn=month2006;
116if (iyear==10) Mn=month2009;
117if (iyear==13) Mn=month2012;
118if (iyear==15) Mn=month2014;
119if (iyear==18) Mn=month2017;
120if (iyear==21) Mn=month2020;
121Mn=Mn.split(";");
122
123var Dn="初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十";
124Dn=Dn.split(";");
125
126dayim=dayiy;
127
128var total=new Array(13);
129total[0]=parseInt(dpm[0]);
130for (i=1;i<dpm.length-1;i++) total[i]=parseInt(dpm[i])+total[i-1];
131for (i=dpm.length-1;i>0;i--)
132if (dayim>total[i-1]){
133dayim=dayim-total[i-1];
134miy=i;break;//2007/11/9若不加break則這天的農曆顯示為正月初一
135}
136bsWeek=ww;
137bsDate=yy+"年"+mm+"月";
138bsDate2=dd;
139bsYear="農曆"+Yn[iyear];
140bsYear2=Mn[miy]+Dn[dayim-1];
141if (ss>=Ys[21]||ss<Ys[0]) bsYear=Yn[21];
142function time(){
143document.write("<table border='0' style='font-size: 8pt; font-family:Tahoma' cellspacing='0' width='90' bordercolor='#cccccc' cellpadding='0'");
144document.write("<tr><td align='center' style='border: 1px solid #0099ff;padding-top:4px'><b><font color=#3366cc>"+bsDate+"</font><span style='font-family: Arial Black;font-size:18pt;color:#FF0000'>"+bsDate2+"</span><span style='FONT-SIZE: 10.5pt;color:#000000'>");
145document.write(bsWeek+"</span><br>"+"<hr width='60' ></b><font color=#666666>");
146document.write(bsYear+"<br>"+bsYear2+"</td></tr></table>");
147
148}
2var bsDate;
3var bsWeek;
4var arrLen=22; //数组长度
5var sValue=0; //当年的秒数
6var dayiy=0; //当年第几天
7var miy=0; //月份的下标
8var iyear=0; //年份标记
9var dayim=0; //当月第几天
10var spd=86400; //每天的秒数
11
12var year1999="30;29;29;30;29;29;30;29;30;30;30;29"; //354
13var year2000="30;30;29;29;30;29;29;30;29;30;30;29"; //354
14var year2001="30;30;29;30;29;30;29;29;30;29;30;29;30"; //384
15var year2002="30;30;29;30;29;30;29;29;30;29;30;29"; //354
16var year2003="30;30;29;30;30;29;30;29;29;30;29;30"; //355
17var year2004="29;30;29;30;30;29;30;29;30;29;30;29;30"; //384
18var year2005="29;30;29;30;29;30;30;29;30;29;30;29"; //354
19var year2006="30;29;30;29;30;30;29;29;30;30;29;29;30"; //384
20var year2007="29;29;30;29;29;30;29;30;30;30;29;30"; //354
21var year2008="30;29;29;30;29;29;30;29;30;30;29;30"; //354
22var year2009="30;30;29;29;30;29;29;30;29;30;29;30;30"; //384
23var year2010="30;29;30;29;30;29;29;30;29;30;29;30"; //354
24var year2011="30;29;30;30;29;30;29;29;30;29;30;29"; //354
25var year2012="30;29;30;30;29;30;29;30;29;30;29;30;29"; //384
26var year2013="30;29;30;29;30;30;29;30;29;30;29;30"; //355
27var year2014="29;30;29;30;29;30;29;30;30;29;30;29;30"; //384
28var year2015="29;30;29;29;30;29;30;30;30;29;30;29"; //354
29var year2016="30;29;30;29;29;30;29;30;30;29;30;30"; //355
30var year2017="29;30;29;30;29;29;30;29;30;29;30;30;30"; //384
31var year2018="29;30;29;30;29;29;30;29;30;29;30;30"; //354
32var year2019="30;29;30;29;30;29;29;30;29;29;30;30"; //354
33var year2020="29;30;30;30;29;30;29;29;30;29;30;29;30"; //384
34
35var month1999="正月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
36var month2001="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
37var month2004="正月;二月;闰二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
38var month2006="正月;二月;三月;四月;五月;六月;七月;闰七月;八月;九月;十月;十一月;十二月"
39var month2009="正月;二月;三月;四月;五月;闰五月;六月;七月;八月;九月;十月;十一月;十二月"
40var month2012="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
41var month2014="正月;二月;三月;四月;五月;六月;七月;八月;九月;闰九月;十月;十一月;十二月"
42var month2017="正月;二月;三月;四月;五月;六月;闰六月;七月;八月;九月;十月;十一月;十二月"
43var month2020="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"
44var Dn="初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十";
45
46var Ys=new Array(arrLen);
47Ys[0]=919094400;Ys[1]=949680000;Ys[2]=980265600;
48Ys[3]=1013443200;Ys[4]=1044028800;Ys[5]=1074700800;
49Ys[6]=1107878400;Ys[7]=1138464000;Ys[8]=1171728000;
50Ys[9]=1202313600;Ys[10]=1232899200;Ys[11]=1266076800;
51Ys[12]=1296662400;Ys[13]=1327248000;Ys[14]=1360425600;
52Ys[15]=1391097600;Ys[16]=1424275200;Ys[17]=1454860800;
53Ys[18]=1485532800;Ys[19]=1518710400;Ys[20]=1549296000;
54Ys[21]=1579881600;
55
56var Yn=new Array(arrLen); //农历年的名称
57Yn[0]="己卯年";Yn[1]="庚辰年";Yn[2]="辛巳年";
58Yn[3]="壬午年";Yn[4]="癸未年";Yn[5]="甲申年";
59Yn[6]="乙酉年";Yn[7]="丙戌年";Yn[8]="丁亥年";
60Yn[9]="戊子年";Yn[10]="己丑年";Yn[11]="庚寅年";
61Yn[12]="辛卯年";Yn[13]="壬辰年";Yn[14]="癸巳年";
62Yn[15]="甲午年";Yn[16]="乙未年";Yn[17]="丙申年";
63Yn[18]="丁酉年";Yn[19]="戊戌年";Yn[20]="己亥年";
64Yn[21]="庚子年";
65var D=new Date();
66var yy=D.getFullYear();
67var mm=D.getMonth()+1;
68var dd=D.getDate();
69var ww=D.getDay();
70if (ww==0) ww="<font color=RED>星期日</font>";
71if (ww==1) ww="星期一";
72if (ww==2) ww="星期二";
73if (ww==3) ww="星期三";
74if (ww==4) ww="星期四";
75if (ww==5) ww="星期五";
76if (ww==6) ww="<font color=green>星期六</font>";
77ww=ww;
78var ss=parseInt(D.getTime() / 1000);
79if (yy<100) yy="19"+yy;
80
81for (i=0;i<arrLen;i++)
82if (ss>=Ys[i]){
83iyear=i;
84sValue=ss-Ys[i]; //当年的秒数
85}
86dayiy=parseInt(sValue/spd)+1; //当年的天数
87
88var dpm=year1999;
89if (iyear==1) dpm=year2000;
90if (iyear==2) dpm=year2001;
91if (iyear==3) dpm=year2002;
92if (iyear==4) dpm=year2003;
93if (iyear==5) dpm=year2004;
94if (iyear==6) dpm=year2005;
95if (iyear==7) dpm=year2006;
96if (iyear==8) dpm=year2007;
97if (iyear==9) dpm=year2008;
98if (iyear==10) dpm=year2009;
99if (iyear==11) dpm=year2010;
100if (iyear==12) dpm=year2011;
101if (iyear==13) dpm=year2012;
102if (iyear==14) dpm=year2013;
103if (iyear==15) dpm=year2014;
104if (iyear==16) dpm=year2015;
105if (iyear==17) dpm=year2016;
106if (iyear==18) dpm=year2017;
107if (iyear==19) dpm=year2018;
108if (iyear==20) dpm=year2019;
109if (iyear==21) dpm=year2020;
110dpm=dpm.split(";");
111
112var Mn=month1999;
113if (iyear==2) Mn=month2001;
114if (iyear==5) Mn=month2004;
115if (iyear==7) Mn=month2006;
116if (iyear==10) Mn=month2009;
117if (iyear==13) Mn=month2012;
118if (iyear==15) Mn=month2014;
119if (iyear==18) Mn=month2017;
120if (iyear==21) Mn=month2020;
121Mn=Mn.split(";");
122
123var Dn="初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十";
124Dn=Dn.split(";");
125
126dayim=dayiy;
127
128var total=new Array(13);
129total[0]=parseInt(dpm[0]);
130for (i=1;i<dpm.length-1;i++) total[i]=parseInt(dpm[i])+total[i-1];
131for (i=dpm.length-1;i>0;i--)
132if (dayim>total[i-1]){
133dayim=dayim-total[i-1];
134miy=i;break;//2007/11/9若不加break則這天的農曆顯示為正月初一
135}
136bsWeek=ww;
137bsDate=yy+"年"+mm+"月";
138bsDate2=dd;
139bsYear="農曆"+Yn[iyear];
140bsYear2=Mn[miy]+Dn[dayim-1];
141if (ss>=Ys[21]||ss<Ys[0]) bsYear=Yn[21];
142function time(){
143document.write("<table border='0' style='font-size: 8pt; font-family:Tahoma' cellspacing='0' width='90' bordercolor='#cccccc' cellpadding='0'");
144document.write("<tr><td align='center' style='border: 1px solid #0099ff;padding-top:4px'><b><font color=#3366cc>"+bsDate+"</font><span style='font-family: Arial Black;font-size:18pt;color:#FF0000'>"+bsDate2+"</span><span style='FONT-SIZE: 10.5pt;color:#000000'>");
145document.write(bsWeek+"</span><br>"+"<hr width='60' ></b><font color=#666666>");
146document.write(bsYear+"<br>"+bsYear2+"</td></tr></table>");
147
148}
推算過程如下:
1.在網上查找萬年曆代碼,找出2008-2020各月天數
2.根據萬年曆查得2008-2020農曆年的名稱
3.根據http://www.cnitblog.com/CoffeeCat/archive/2007/02/27/23279.html提供的方法作秒數推算