Javascript阳历转阴历程 1999-2020小農曆JS

sucn| 阅读:9139 发表时间:2007-04-06 经验技巧

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="星期日";
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="星期六";
77 ww=ww;
78 var ss=parseInt(D.getTime() / 1000);
79 if (yy=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;i0;i--)
132 if (dayim>total[i-1]) {
133 dayim=dayim-total[i-1];
134 miy=i;
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]||ss21];
142 function time() {
143 document.write(""+bsDate+""+bsDate2+"");
145 document.write(bsWeek+"
"+"");
146 document.write(bsYear+"
"+bsYear2+"");
147
148 }
推算過程如下:
1.在網上查找萬年曆代碼,找出2008-2020各月天數
2.根據萬年曆查得2008-2020農曆年的名稱
3.根據[url=http://www.cnitblog.com/CoffeeCat/archive/2007/02/27/23279.html][FONT-COLOR=#0000cc]http://www.cnitblog.com/CoffeeCat/archive/2007/02/27/23279.html[/FONT-COLOR][/url]提供的方法作秒數推算

*文章为原作者独立观点,不代表网站的立场
本文由网站发表并编辑,转载此文章须经作者同意,并请附上出处及本页链接。如有侵权,请联系本站删除。

友情连接