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

12
var year1999="30;29;29;30;29;29;30;29;30;30;30;29"; //35413
var year2000="30;30;29;29;30;29;29;30;29;30;30;29"; //35414
var year2001="30;30;29;30;29;30;29;29;30;29;30;29;30"; //38415
var year2002="30;30;29;30;29;30;29;29;30;29;30;29"; //35416
var year2003="30;30;29;30;30;29;30;29;29;30;29;30"; //35517
var year2004="29;30;29;30;30;29;30;29;30;29;30;29;30"; //38418
var year2005="29;30;29;30;29;30;30;29;30;29;30;29"; //35419
var year2006="30;29;30;29;30;30;29;29;30;30;29;29;30"; //38420
var year2007="29;29;30;29;29;30;29;30;30;30;29;30"; //35421
var year2008="30;29;29;30;29;29;30;29;30;30;29;30"; //35422
var year2009="30;30;29;29;30;29;29;30;29;30;29;30;30"; //38423
var year2010="30;29;30;29;30;29;29;30;29;30;29;30"; //35424
var year2011="30;29;30;30;29;30;29;29;30;29;30;29"; //35425
var year2012="30;29;30;30;29;30;29;30;29;30;29;30;29"; //38426
var year2013="30;29;30;29;30;30;29;30;29;30;29;30"; //35527
var year2014="29;30;29;30;29;30;29;30;30;29;30;29;30"; //38428
var year2015="29;30;29;29;30;29;30;30;30;29;30;29"; //35429
var year2016="30;29;30;29;29;30;29;30;30;29;30;30"; //35530
var year2017="29;30;29;30;29;29;30;29;30;29;30;30;30"; //38431
var year2018="29;30;29;30;29;29;30;29;30;29;30;30"; //35432
var year2019="30;29;30;29;30;29;29;30;29;29;30;30"; //35433
var year2020="29;30;30;30;29;30;29;29;30;29;30;29;30"; //38434

35
var month1999="正月;二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月"36
var month2001="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"37
var month2004="正月;二月;闰二月;三月;四月;五月;六月;七月;八月;九月;十月;十一月;十二月"38
var month2006="正月;二月;三月;四月;五月;六月;七月;闰七月;八月;九月;十月;十一月;十二月"39
var month2009="正月;二月;三月;四月;五月;闰五月;六月;七月;八月;九月;十月;十一月;十二月"40
var month2012="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"41
var month2014="正月;二月;三月;四月;五月;六月;七月;八月;九月;闰九月;十月;十一月;十二月"42
var month2017="正月;二月;三月;四月;五月;六月;闰六月;七月;八月;九月;十月;十一月;十二月"43
var month2020="正月;二月;三月;四月;闰四月;五月;六月;七月;八月;九月;十月;十一月;十二月"44
var Dn="初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十";45

46
var Ys=new Array(arrLen);47
Ys[0]=919094400;Ys[1]=949680000;Ys[2]=980265600;48
Ys[3]=1013443200;Ys[4]=1044028800;Ys[5]=1074700800;49
Ys[6]=1107878400;Ys[7]=1138464000;Ys[8]=1171728000;50
Ys[9]=1202313600;Ys[10]=1232899200;Ys[11]=1266076800;51
Ys[12]=1296662400;Ys[13]=1327248000;Ys[14]=1360425600;52
Ys[15]=1391097600;Ys[16]=1424275200;Ys[17]=1454860800;53
Ys[18]=1485532800;Ys[19]=1518710400;Ys[20]=1549296000;54
Ys[21]=1579881600;55

56
var Yn=new Array(arrLen); //农历年的名称57
Yn[0]="己卯年";Yn[1]="庚辰年";Yn[2]="辛巳年";58
Yn[3]="壬午年";Yn[4]="癸未年";Yn[5]="甲申年";59
Yn[6]="乙酉年";Yn[7]="丙戌年";Yn[8]="丁亥年";60
Yn[9]="戊子年";Yn[10]="己丑年";Yn[11]="庚寅年";61
Yn[12]="辛卯年";Yn[13]="壬辰年";Yn[14]="癸巳年";62
Yn[15]="甲午年";Yn[16]="乙未年";Yn[17]="丙申年";63
Yn[18]="丁酉年";Yn[19]="戊戌年";Yn[20]="己亥年";64
Yn[21]="庚子年";65
var D=new Date();66
var yy=D.getFullYear();67
var mm=D.getMonth()+1;68
var dd=D.getDate();69
var ww=D.getDay();70
if (ww==0) ww="<font color=RED>星期日</font>";71
if (ww==1) ww="星期一";72
if (ww==2) ww="星期二";73
if (ww==3) ww="星期三";74
if (ww==4) ww="星期四";75
if (ww==5) ww="星期五";76
if (ww==6) ww="<font color=green>星期六</font>";77
ww=ww;78
var ss=parseInt(D.getTime() / 1000);79
if (yy<100) yy="19"+yy;80

81
for (i=0;i<arrLen;i++)82

if (ss>=Ys[i])
{83
iyear=i;84
sValue=ss-Ys[i]; //当年的秒数85
}86
dayiy=parseInt(sValue/spd)+1; //当年的天数87

88
var dpm=year1999;89
if (iyear==1) dpm=year2000;90
if (iyear==2) dpm=year2001;91
if (iyear==3) dpm=year2002;92
if (iyear==4) dpm=year2003;93
if (iyear==5) dpm=year2004;94
if (iyear==6) dpm=year2005;95
if (iyear==7) dpm=year2006;96
if (iyear==8) dpm=year2007;97
if (iyear==9) dpm=year2008;98
if (iyear==10) dpm=year2009;99
if (iyear==11) dpm=year2010;100
if (iyear==12) dpm=year2011;101
if (iyear==13) dpm=year2012;102
if (iyear==14) dpm=year2013;103
if (iyear==15) dpm=year2014;104
if (iyear==16) dpm=year2015;105
if (iyear==17) dpm=year2016;106
if (iyear==18) dpm=year2017;107
if (iyear==19) dpm=year2018;108
if (iyear==20) dpm=year2019;109
110
dpm=dpm.split(";");111

112
var Mn=month1999;113
if (iyear==2) Mn=month2001;114
if (iyear==5) Mn=month2004;115
if (iyear==7) Mn=month2006;116
117
if (iyear==13) Mn=month2012;118
if (iyear==15) Mn=month2014;119
if (iyear==18) Mn=month2017;120
if (iyear==21) Mn=month2020;121
Mn=Mn.split(";");122

123
var Dn="初一;初二;初三;初四;初五;初六;初七;初八;初九;初十;十一;十二;十三;十四;十五;十六;十七;十八;十九;二十;廿一;廿二;廿三;廿四;廿五;廿六;廿七;廿八;廿九;三十";124
Dn=Dn.split(";");125

126
dayim=dayiy;127

128
var total=new Array(13);129
total[0]=parseInt(dpm[0]);130
for (i=1;i<dpm.length-1;i++) total[i]=parseInt(dpm[i])+total[i-1];131
for (i=dpm.length-1;i>0;i--)132

if (dayim>total[i-1])
{133
dayim=dayim-total[i-1];134
miy=i;break;//2007/11/9若不加break則這天的農曆顯示為正月初一135
}136
bsWeek=ww;137
bsDate=yy+"年"+mm+"月";138
bsDate2=dd;139
bsYear="農曆"+Yn[iyear];140
bsYear2=Mn[miy]+Dn[dayim-1];141
if (ss>=Ys[21]||ss<Ys[0]) bsYear=Yn[21];142

function time()
{143
document.write("<table border='0' style='font-size: 8pt; font-family:Tahoma' cellspacing='0' width='90' bordercolor='#cccccc' cellpadding='0'");144
document.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'>");145
document.write(bsWeek+"</span><br>"+"<hr width='60' ></b><font color=#666666>");146
document.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提供的方法作秒數推算
浙公网安备 33010602011771号