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
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82



83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132



133

134

135

136

137

138

139

140

141

142



143

144

145

146

147

148

推算過程如下:
1.在網上查找萬年曆代碼,找出2008-2020各月天數
2.根據萬年曆查得2008-2020農曆年的名稱
3.根據http://www.cnitblog.com/CoffeeCat/archive/2007/02/27/23279.html提供的方法作秒數推算