公历农历转换器

公历农历转换器 - 副本、爬至https://www.buyiju.com/cha/yyl.asp网站

源码改进之后如下

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <meta http-equiv="Cache-Control" content="no-transform" />
  6 <meta http-equiv="Cache-Control" content="no-siteapp" />
  7 
  8 </head>
  9 <body>
 10 <div class="wrapper">
 11 <div class="plt">
 12  <div class="viewbox">
 13   <div class="title">
 14    <h2>阴历阳历互转 公历农历转换器</h2></div>
 15   <div class="info"><small>一般意义上讲,阴历即是农历,阳历即是公历。</small></div>
 16 <FORM name="form_jisuan">
 17 <div class="inform center">
 18 <font color="#ff0000">农历</font><select name="nyear" class="zbslt">  
 19         <option value="1950" >1950</option>                  
 20         <option value="1951" >1951</option>                  
 21         <option value="1952" >1952</option>                  
 22         <option value="1953" >1953</option>                  
 23         <option value="1954" >1954</option>                  
 24         <option value="1955" >1955</option>                  
 25         <option value="1956" >1956</option>                  
 26         <option value="1957" >1957</option>                  
 27         <option value="1958" >1958</option>                  
 28         <option value="1959" >1959</option>                  
 29         <option value="1960" >1960</option>                  
 30         <option value="1961" >1961</option>                  
 31         <option value="1962" >1962</option>                  
 32         <option value="1963" >1963</option>                  
 33         <option value="1964" >1964</option>                  
 34         <option value="1965" >1965</option>                  
 35         <option value="1966" >1966</option>                  
 36         <option value="1967" >1967</option>                  
 37         <option value="1968" >1968</option>                  
 38         <option value="1969" >1969</option>                  
 39         <option value="1970" >1970</option>                  
 40         <option value="1971" >1971</option>                  
 41         <option value="1972" >1972</option>                  
 42         <option value="1973" >1973</option>                  
 43         <option value="1974" >1974</option>                  
 44         <option value="1975" >1975</option>                  
 45         <option value="1976" >1976</option>                  
 46         <option value="1977" >1977</option>                  
 47         <option value="1978" >1978</option>                  
 48         <option value="1979" >1979</option>                  
 49         <option value="1980" >1980</option>                  
 50         <option value="1981" >1981</option>                  
 51         <option value="1982" >1982</option>                  
 52         <option value="1983" >1983</option>                  
 53         <option value="1984" >1984</option>                  
 54         <option value="1985" >1985</option>                  
 55         <option value="1986" >1986</option>                  
 56         <option value="1987" >1987</option>                  
 57         <option value="1988" >1988</option>                  
 58         <option value="1989" >1989</option>                  
 59         <option value="1990" >1990</option>                  
 60         <option value="1991" >1991</option>                  
 61         <option value="1992" >1992</option>                  
 62         <option value="1993" >1993</option>                  
 63         <option value="1994" >1994</option>                  
 64         <option value="1995" >1995</option>                  
 65         <option value="1996" >1996</option>                  
 66         <option value="1997" >1997</option>                  
 67         <option value="1998" selected>1998</option>                  
 68         <option value="1999" >1999</option>                  
 69         <option value="2000" >2000</option>                  
 70         <option value="2001" >2001</option>                  
 71         <option value="2002" >2002</option>                  
 72         <option value="2003" >2003</option>                  
 73         <option value="2004" >2004</option>                  
 74         <option value="2005" >2005</option>                  
 75         <option value="2006" >2006</option>                  
 76         <option value="2007" >2007</option>                  
 77         <option value="2008" >2008</option>                  
 78         <option value="2009" >2009</option>           
 79         <option value="2010" >2010</option> 
 80         <option value="2011" >2011</option> 
 81         <option value="2012" >2012</option>                  
 82         <option value="2013" >2013</option>                  
 83         <option value="2014" >2014</option>                 
 84         <option value="2015" >2015</option>                  
 85         <option value="2016" >2016</option>                  
 86         <option value="2017" >2017</option>                  
 87         <option value="2018" >2018</option>                  
 88         <option value="2019" >2019</option>           
 89         <option value="2020" >2020</option> 
 90         <option value="2021" >2021</option> 
 91               </select><select name="nmonth" class="zbslt">  
 92         <option value="1" >1</option>                  
 93         <option value="2" >2</option>                  
 94         <option value="3" selected>3</option>                  
 95         <option value="4" >4</option>                  
 96         <option value="5" >5</option>                  
 97         <option value="6" >6</option>                  
 98         <option value="7" >7</option>                  
 99         <option value="8" >8</option>                  
100         <option value="9" >9</option>                  
101         <option value="10" >10</option>                  
102         <option value="11" >11</option>                  
103         <option value="12" >12</option>            
104               </select>105               <select name="nday" class="zbslt">  
106         <option value="1" >1</option>                  
107         <option value="2" >2</option>                  
108         <option value="3" >3</option>                  
109         <option value="4" >4</option>                  
110         <option value="5" >5</option>                  
111         <option value="6" >6</option>                  
112         <option value="7" >7</option>                  
113         <option value="8" >8</option>                  
114         <option value="9" >9</option>                  
115         <option value="10" >10</option>                  
116         <option value="11" >11</option>                  
117         <option value="12" >12</option>                  
118         <option value="13" >13</option>                  
119         <option value="14" >14</option>                  
120         <option value="15" >15</option>                  
121         <option value="16" >16</option>                  
122         <option value="17" >17</option>                  
123         <option value="18" >18</option>                  
124         <option value="19" >19</option>                  
125         <option value="20" >20</option>                  
126         <option value="21" >21</option>                  
127         <option value="22" >22</option>                  
128         <option value="23" >23</option>                  
129         <option value="24" >24</option>                  
130         <option value="25" >25</option>                  
131         <option value="26" >26</option>                  
132         <option value="27" selected>27</option>                  
133         <option value="28" >28</option>                  
134         <option value="29" >29</option>                  
135         <option value="30" >30</option>           
136         </select>137         <input type="hidden" name="nongli" value="农历" />
138          <input type="button" value="转为阳历" onClick="CalConv(1);" class="zbbtn2"> 
139         <div id="ddd1" class="red" align="center"></div>
140 </div>
141 <div class="inform center">
142     <font color="#ff0000">公历</font><select name="yyear" class="zbslt">  
143         <option value="1950" >1950</option>                  
144         <option value="1951" >1951</option>                  
145         <option value="1952" >1952</option>                  
146         <option value="1953" >1953</option>                  
147         <option value="1954" >1954</option>                  
148         <option value="1955" >1955</option>                  
149         <option value="1956" >1956</option>                  
150         <option value="1957" >1957</option>                  
151         <option value="1958" >1958</option>                  
152         <option value="1959" >1959</option>                  
153         <option value="1960" >1960</option>                  
154         <option value="1961" >1961</option>                  
155         <option value="1962" >1962</option>                  
156         <option value="1963" >1963</option>                  
157         <option value="1964" >1964</option>                  
158         <option value="1965" >1965</option>                  
159         <option value="1966" >1966</option>                  
160         <option value="1967" >1967</option>                  
161         <option value="1968" >1968</option>                  
162         <option value="1969" >1969</option>                  
163         <option value="1970" >1970</option>                  
164         <option value="1971" >1971</option>                  
165         <option value="1972" >1972</option>                  
166         <option value="1973" >1973</option>                  
167         <option value="1974" >1974</option>                  
168         <option value="1975" >1975</option>                  
169         <option value="1976" >1976</option>                  
170         <option value="1977" >1977</option>                  
171         <option value="1978" >1978</option>                  
172         <option value="1979" >1979</option>                  
173         <option value="1980" >1980</option>                  
174         <option value="1981" >1981</option>                  
175         <option value="1982" >1982</option>                  
176         <option value="1983" >1983</option>                  
177         <option value="1984" >1984</option>                  
178         <option value="1985" >1985</option>                  
179         <option value="1986" >1986</option>                  
180         <option value="1987" >1987</option>                  
181         <option value="1988" >1988</option>                  
182         <option value="1989" >1989</option>                  
183         <option value="1990" >1990</option>                  
184         <option value="1991" >1991</option>                  
185         <option value="1992" >1992</option>                  
186         <option value="1993" >1993</option>                  
187         <option value="1994" >1994</option>                  
188         <option value="1995" >1995</option>                  
189         <option value="1996" >1996</option>                  
190         <option value="1997" >1997</option>                  
191         <option value="1998" selected>1998</option>                  
192         <option value="1999" >1999</option>                  
193         <option value="2000" >2000</option>                  
194         <option value="2001" >2001</option>                  
195         <option value="2002" >2002</option>                  
196         <option value="2003" >2003</option>                  
197         <option value="2004" >2004</option>                  
198         <option value="2005" >2005</option>                  
199         <option value="2006" >2006</option>                  
200         <option value="2007" >2007</option>                  
201         <option value="2008" >2008</option>                  
202         <option value="2009" >2009</option>           
203         <option value="2010" >2010</option> 
204         <option value="2011" >2011</option> 
205         <option value="2012" >2012</option>                  
206         <option value="2013" >2013</option>                  
207         <option value="2014" >2014</option>                 
208         <option value="2015" >2015</option>                  
209         <option value="2016" >2016</option>                  
210         <option value="2017" >2017</option>                  
211         <option value="2018" >2018</option>                  
212         <option value="2019" >2019</option>           
213         <option value="2020" >2020</option> 
214         <option value="2021" >2021</option> 
215               </select><select name="ymonth" class="zbslt">  
216         <option value="1" >1</option>                  
217         <option value="2" >2</option>                  
218         <option value="3" selected>3</option>                  
219         <option value="4" >4</option>                  
220         <option value="5" >5</option>                  
221         <option value="6" >6</option>                  
222         <option value="7" >7</option>                  
223         <option value="8" >8</option>                  
224         <option value="9" >9</option>                  
225         <option value="10" >10</option>                  
226         <option value="11" >11</option>                  
227         <option value="12" >12</option>            
228               </select>229               <select name="yday" class="zbslt">  
230         <option value="1" >1</option>                  
231         <option value="2" >2</option>                  
232         <option value="3" >3</option>                  
233         <option value="4" >4</option>                  
234         <option value="5" >5</option>                  
235         <option value="6" >6</option>                  
236         <option value="7" >7</option>                  
237         <option value="8" >8</option>                  
238         <option value="9" >9</option>                  
239         <option value="10" >10</option>                  
240         <option value="11" >11</option>                  
241         <option value="12" >12</option>                  
242         <option value="13" >13</option>                  
243         <option value="14" >14</option>                  
244         <option value="15" >15</option>                  
245         <option value="16" >16</option>                  
246         <option value="17" >17</option>                  
247         <option value="18" >18</option>                  
248         <option value="19" >19</option>                  
249         <option value="20" >20</option>                  
250         <option value="21" >21</option>                  
251         <option value="22" >22</option>                  
252         <option value="23" >23</option>                  
253         <option value="24" >24</option>                  
254         <option value="25" >25</option>                  
255         <option value="26" >26</option>                  
256         <option value="27" selected>27</option>                  
257         <option value="28" >28</option>                  
258         <option value="29" >29</option>                  
259         <option value="30" >30</option>  
260         <option value="31" >31</option>         
261         </select><input type="hidden" name="gongli" value="公历" />&nbsp;
262         <input type="button" value="转为阴历" onClick="CalConv(0);" class="zbbtn2">
263     <div id="ddd2" class="red" align="center"></div>  
264 </div>
265 </form>
266  </div><!-- /viewbox -->
267  </div><!-- //plt -->
268 </div>
269 <!-- /wrapper -->
270 <SCRIPT language=JavaScript>
271 function CalConv(M)
272 {
273 FIRSTYEAR = 1936;
274 LASTYEAR = 2031;
275 
276 LunarCal = [
277 new tagLunarCal(23, 3, 2, 17, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0 ), /* 1936 */ 
278 new tagLunarCal( 41, 0, 4, 23, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1 ), 
279 new tagLunarCal( 30, 7, 5, 28, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1 ), 
280 new tagLunarCal( 49, 0, 6, 33, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ), 
281 new tagLunarCal( 38, 0, 0, 38, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ), /* 1940 */ 
282 new tagLunarCal( 26, 6, 2, 44, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0 ), 
283 new tagLunarCal( 45, 0, 3, 49, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ), 
284 new tagLunarCal( 35, 0, 4, 54, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ), 
285 new tagLunarCal( 24, 4, 5, 59, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 ), /* 1944 */ 
286 new tagLunarCal( 43, 0, 0, 5, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1 ), 
287 new tagLunarCal( 32, 0, 1, 10, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1 ), 
288 new tagLunarCal( 21, 2, 2, 15, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ), 
289 new tagLunarCal( 40, 0, 3, 20, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ), /* 1948 */ 
290 new tagLunarCal( 28, 7, 5, 26, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ), 
291 new tagLunarCal( 47, 0, 6, 31, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1 ), 
292 new tagLunarCal( 36, 0, 0, 36, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ), 
293 new tagLunarCal( 26, 5, 1, 41, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ), /* 1952 */ 
294 new tagLunarCal( 44, 0, 3, 47, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1 ), 
295 new tagLunarCal( 33, 0, 4, 52, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0 ), 
296 new tagLunarCal( 23, 3, 5, 57, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1 ), 
297 new tagLunarCal( 42, 0, 6, 2, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1 ), /* 1956 */ 
298 new tagLunarCal( 30, 8, 1, 8, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 ), 
299 new tagLunarCal( 48, 0, 2, 13, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 ), 
300 new tagLunarCal( 38, 0, 3, 18, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 ), 
301 new tagLunarCal( 27, 6, 4, 23, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0 ), /* 1960 */ 
302 new tagLunarCal( 45, 0, 6, 29, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0 ), 
303 new tagLunarCal( 35, 0, 0, 34, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), 
304 new tagLunarCal( 24, 4, 1, 39, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 ), 
305 new tagLunarCal( 43, 0, 2, 44, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 ), /* 1964 */ 
306 new tagLunarCal( 32, 0, 4, 50, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1 ), 
307 new tagLunarCal( 20, 3, 5, 55, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ), 
308 new tagLunarCal( 39, 0, 6, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0 ), 
309 new tagLunarCal( 29, 7, 0, 5, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1 ), /* 1968 */ 
310 new tagLunarCal( 47, 0, 2, 11, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ), 
311 new tagLunarCal( 36, 0, 3, 16, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0 ), 
312 new tagLunarCal( 26, 5, 4, 21, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1 ), 
313 new tagLunarCal( 45, 0, 5, 26, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 ), /* 1972 */ 
314 new tagLunarCal( 33, 0, 0, 32, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1 ), 
315 new tagLunarCal( 22, 4, 1, 37, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1 ), 
316 new tagLunarCal( 41, 0, 2, 42, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1 ), 
317 new tagLunarCal( 30, 8, 3, 47, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ), /* 1976 */ 
318 new tagLunarCal( 48, 0, 5, 53, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1 ), 
319 new tagLunarCal( 37, 0, 6, 58, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ), 
320 new tagLunarCal( 27, 6, 0, 3, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0 ), 
321 new tagLunarCal( 46, 0, 1, 8, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0 ), /* 1980 */ 
322 new tagLunarCal( 35, 0, 3, 14, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1 ), 
323 new tagLunarCal( 24, 4, 4, 19, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1 ), 
324 new tagLunarCal( 43, 0, 5, 24, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1 ), 
325 new tagLunarCal( 32, 10, 6, 29, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1 ), /* 1984 */ 
326 new tagLunarCal( 50, 0, 1, 35, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 ), 
327 new tagLunarCal( 39, 0, 2, 40, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1 ), 
328 new tagLunarCal( 28, 6, 3, 45, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0 ), 
329 new tagLunarCal( 47, 0, 4, 50, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), /* 1988 */ 
330 new tagLunarCal( 36, 0, 6, 56, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0 ), 
331 new tagLunarCal( 26, 5, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1 ), 
332 new tagLunarCal( 45, 0, 1, 6, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0 ), 
333 new tagLunarCal( 34, 0, 2, 11, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0 ), /* 1992 */ 
334 new tagLunarCal( 22, 3, 4, 17, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 ), 
335 new tagLunarCal( 40, 0, 5, 22, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 ), 
336 new tagLunarCal( 30, 8, 6, 27, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1 ), 
337 new tagLunarCal( 49, 0, 0, 32, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1 ), /* 1996 */ 
338 new tagLunarCal( 37, 0, 2, 38, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), 
339 new tagLunarCal( 27, 5, 3, 43, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1 ), 
340 new tagLunarCal( 46, 0, 4, 48, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1 ), /* 1999 */
341 new tagLunarCal( 35, 0, 5, 53, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1 ), /* 2000 */
342 new tagLunarCal( 23, 4, 0, 59, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),
343 new tagLunarCal( 42, 0, 1, 4, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),
344 new tagLunarCal( 31, 0, 2, 9, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0 ),
345 new tagLunarCal( 21, 2, 3, 14, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1 ), /* 2004 */
346 new tagLunarCal( 39, 0, 5, 20, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ),
347 new tagLunarCal( 28, 7, 6, 25, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 ),
348 new tagLunarCal( 48, 0, 0, 30, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1 ),
349 new tagLunarCal( 37, 0, 1, 35, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1 ), /* 2008 */
350 new tagLunarCal( 25, 5, 3, 41, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ),
351 new tagLunarCal( 44, 0, 4, 46, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ),
352 new tagLunarCal( 33, 0, 5, 51, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),
353 new tagLunarCal( 22, 4, 6, 56, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ), /* 2012 */
354 
355 new tagLunarCal( 40, 0, 1, 2, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ),
356 new tagLunarCal( 30, 9, 2, 7, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ),
357 new tagLunarCal( 49, 0, 3, 12, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1 ),
358 new tagLunarCal( 38, 0, 4, 17, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0 ), /* 2016 */
359 new tagLunarCal( 27, 6, 6, 23, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1 ),
360 new tagLunarCal( 46, 0, 0, 28, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0 ),
361 new tagLunarCal( 35, 0, 1, 33, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ),
362 new tagLunarCal( 24, 4, 2, 38, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ), /* 2020 */
363 new tagLunarCal( 42, 0, 4, 44, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 ),
364 new tagLunarCal( 31, 0, 5, 49, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0 ),
365 new tagLunarCal( 21, 2, 6, 54, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ),
366 new tagLunarCal( 40, 0, 0, 59, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), /* 2024 */
367 new tagLunarCal( 28, 6, 2, 5, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 ),
368 new tagLunarCal( 47, 0, 3, 10, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1 ),
369 new tagLunarCal( 36, 0, 4, 15, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1 ),
370 new tagLunarCal( 25, 5, 5, 20, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ), /* 2028 */
371 new tagLunarCal( 43, 0, 0, 26, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ),
372 new tagLunarCal( 32, 0, 1, 31, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0 ),
373 new tagLunarCal( 22, 3, 2, 36, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0 ) ];
374 
375 
376 /* 西曆年每月之日數 */
377 SolarCal = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];
378 
379 /* 西曆年每月之累積日數, 平年與閏年 */
380 SolarDays = [
381 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365, 396,
382 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366, 397 ];
383 
384 AnimalIdx = ["", "", "", "", "", "", "", "", "", "", "", "" ];
385 LocationIdx = [ "", "", "", "西" ];
386 
387 
388 if (M==0) { //阳历到阴历
389 if (!IsInteger(form_jisuan.yyear.value) || !IsInteger(form_jisuan.ymonth.value) || !IsInteger(form_jisuan.yday.value)) return alert("请输入合法阳历年月日数值");   
390 SolarYear = parseInt(form_jisuan.yyear.value);
391 SolarMonth = parseInt(form_jisuan.ymonth.value);
392 SolarDate = parseInt(form_jisuan.yday.value);
393 
394 
395 if ( SolarYear <= FIRSTYEAR || SolarYear > LASTYEAR ) return alert("请输入1936-2031有效年份");
396 
397 sm = SolarMonth - 1;
398 
399 if ( sm < 0 || sm > 11 ) return alert(请输入有效月份);
400 
401 leap = GetLeap( SolarYear );
402 
403 if ( sm == 1 )
404 d = leap + 28;
405 else
406 d = SolarCal[sm];
407 
408 if ( SolarDate < 1 || SolarDate > d ) return 3;
409 
410 y = SolarYear - FIRSTYEAR;
411 acc = SolarDays[ leap*14 + sm ] + SolarDate;
412 kc = acc + LunarCal[y].BaseKanChih;
413 Kan = kc % 10;
414 Chih = kc % 12;
415 Location = LocationIdx[kc % 4];
416 Age = kc % 60;
417 if ( Age < 22 )
418 Age = 22 - Age;
419 else
420 Age = 82 - Age;
421 
422 Age =Age + 3;
423 
424 if (Age < 10)
425 Age=Age+60;
426 
427 Animal = AnimalIdx[ Chih ];
428 
429 if ( acc <= LunarCal[y].BaseDays ) {
430 y--;
431 LunarYear = SolarYear - 1;
432 leap = GetLeap( LunarYear );
433 sm += 12;
434 acc = SolarDays[leap*14 + sm] + SolarDate;
435 }
436 else
437 LunarYear = SolarYear;
438 
439 l1 = LunarCal[y].BaseDays;
440 for ( i=0; i<13; i++ ) {
441 l2 = l1 + LunarCal[y].MonthDays[i] + 29;
442 if ( acc <= l2 ) break;
443 l1 = l2;
444 }
445 
446 LunarMonth = i + 1;
447 LunarDate = acc - l1;
448 im = LunarCal[y].Intercalation;
449 
450 if ( im != 0 && LunarMonth > im ) {
451 LunarMonth--;
452 if ( LunarMonth == im ) LunarMonth = -im;
453 }
454 
455 if ( LunarMonth > 12 ) LunarMonth -= 12;
456 document.getElementById("ddd2").innerHTML="农历为:"+ LunarYear + "" + LunarMonth + "" + LunarDate + "";
457 //alert("农历为:"+ LunarYear + "年" + LunarMonth + "月" + LunarDate + "日" );
458 return 0;
459 }
460 
461 else /* 阴历转阳历 */ 
462 { 
463    if (!IsInteger(form_jisuan.nyear.value) || !IsInteger(form_jisuan.nmonth.value) || !IsInteger(form_jisuan.nday.value)) return alert("请输入合法农历年月日数值");   
464    LunarYear = parseInt(form_jisuan.nyear.value);
465    LunarMonth = parseInt(form_jisuan.nmonth.value);
466    LunarDate = parseInt(form_jisuan.nday.value);
467 
468         if ( LunarYear < FIRSTYEAR || LunarYear >= LASTYEAR ) return alert("请输入1936-2031有效年份");   
469           
470         y = LunarYear - FIRSTYEAR ; 
471         im = LunarCal[y].Intercalation; 
472         lm = LunarMonth; 
473           
474         if ( lm < 0 ) 
475         { 
476             if ( lm != -im ) 
477                 return alert(请输入有效月份);   
478         } 
479         else if ( lm < 1 || lm > 12 ) return alert(请输入有效月份);   
480         
481         if ( im != 0 ) 
482         { 
483             if ( lm > im ) 
484                 lm++; 
485             else if ( lm == -im ) 
486                 lm = im + 1; 
487         } 
488         lm--;
489 
490         if ( LunarDate > LunarCal[y].MonthDays[lm] + 29 ) 
491             return alert("农历日期不正确");
492            
493         
494         acc = 0;
495         for ( i=0; i < lm;i++) {
496 
497          acc+= LunarCal[y].MonthDays[i] + 29;
498           
499          
500        }
501        
502         acc +=LunarCal[y].BaseDays + LunarDate;
503            
504         
505              
506             leap = GetLeap( LunarYear ); 
507             
508             
509         for ( i=13; i>=0; i-- ) {
510         
511             if ( acc > SolarDays[leap*14+i] ) 
512                 break; 
513         }       
514              SolarDate = acc - SolarDays[leap*14 + i] ;
515             
516             
517            
518             if ( i <= 11 ) 
519             { 
520               
521                 SolarYear = LunarYear; 
522                 SolarMonth = i + 1; 
523             } 
524             else 
525             { 
526                 
527                 SolarYear = LunarYear + 1; 
528                 SolarMonth = i - 11; 
529             } 
530              
531          
532             leap = GetLeap( SolarYear ); 
533             y = SolarYear - FIRSTYEAR; 
534             
535             //acc = SolarDays[leap][SolarMonth-1] + SolarDate; 
536             acc = SolarDays[leap*14 + SolarMonth-1] + SolarDate;
537             
538             weekday = ( acc + LunarCal[y].BaseWeekday ) % 7; 
539             kc = acc + LunarCal[y].BaseKanChih; 
540             kan = kc % 10; 
541             chih = kc % 12; 
542             document.getElementById("ddd1").innerHTML="阳历为:"+ SolarYear + "" + SolarMonth + "" + SolarDate + "";
543             //alert("阳历为:"+ SolarYear + "年" + SolarMonth + "月" + SolarDate + "日" );      
544           
545             return 0;
546 }//else结束
547 
548 }
549 
550 /* 闰年, 返回 0 平年, 1 闰年 */
551 function GetLeap( year )
552 {
553    if ( year % 400 == 0 )
554      return 1;
555    else if ( year % 100 == 0 )
556      return 0;
557    else if ( year % 4 == 0 )
558      return 1;
559    else
560      return 0;
561 }
562 
563 function tagLunarCal( d, i, w, k, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13) {
564 this.BaseDays = d;         /* 1 月 1 日到正月初一的累计日 */
565 this.Intercalation = i;    /* 闰月月份. 0==此年沒有闰月 */
566 this.BaseWeekday = w;      /* 此年 1 月 1 日为星期减 1 */
567 this.BaseKanChih = k;      /* 此年 1 月 1 日之干支序号减 1 */
568 this.MonthDays = [ m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13 ]; /* 此农历年每月之大小, 0==小月(29日), 1==大月(30日) */
569 }
570 
571 //-->
572 
573 
574 //<!--
575 
576 
577 function IsInteger(string ,sign) 
578 { 
579 var integer; 
580 if ((sign!=null) && (sign!='-') && (sign!='+')) 
581 { 
582    alert('IsInter(string,sign)的参数出错:nsign为null或"-"或"+"'); 
583    return false; 
584 } 
585 integer = parseInt(string); 
586 if (isNaN(integer)) 
587 { 
588    return false; 
589 } 
590 else if (integer.toString().length==string.length) 
591 { 
592    if ((sign==null) || (sign=='-' && integer<0) || (sign=='+' && integer>0)) 
593    { 
594      return true; 
595    } 
596    else 
597      return false; 
598 } 
599 else 
600    return false; 
601 }
602 
603 //--></SCRIPT>
604 
605 </body>
606 </html>

如需copy,则复制下面源码即可

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />

</head>
<body>
<div class="wrapper">
<div class="plt">
 <div class="viewbox">
  <div class="title">
   <h2>阴历阳历互转 公历农历转换器</h2></div>
  <div class="info"><small>一般意义上讲,阴历即是农历,阳历即是公历。</small></div>
<FORM name="form_jisuan">
<div class="inform center">
<font color="#ff0000">农历</font>:<select name="nyear" class="zbslt">  
        <option value="1950" >1950</option>                  
        <option value="1951" >1951</option>                  
        <option value="1952" >1952</option>                  
        <option value="1953" >1953</option>                  
        <option value="1954" >1954</option>                  
        <option value="1955" >1955</option>                  
        <option value="1956" >1956</option>                  
        <option value="1957" >1957</option>                  
        <option value="1958" >1958</option>                  
        <option value="1959" >1959</option>                  
        <option value="1960" >1960</option>                  
        <option value="1961" >1961</option>                  
        <option value="1962" >1962</option>                  
        <option value="1963" >1963</option>                  
        <option value="1964" >1964</option>                  
        <option value="1965" >1965</option>                  
        <option value="1966" >1966</option>                  
        <option value="1967" >1967</option>                  
        <option value="1968" >1968</option>                  
        <option value="1969" >1969</option>                  
        <option value="1970" >1970</option>                  
        <option value="1971" >1971</option>                  
        <option value="1972" >1972</option>                  
        <option value="1973" >1973</option>                  
        <option value="1974" >1974</option>                  
        <option value="1975" >1975</option>                  
        <option value="1976" >1976</option>                  
        <option value="1977" >1977</option>                  
        <option value="1978" >1978</option>                  
        <option value="1979" >1979</option>                  
        <option value="1980" >1980</option>                  
        <option value="1981" >1981</option>                  
        <option value="1982" >1982</option>                  
        <option value="1983" >1983</option>                  
        <option value="1984" >1984</option>                  
        <option value="1985" >1985</option>                  
        <option value="1986" >1986</option>                  
        <option value="1987" >1987</option>                  
        <option value="1988" >1988</option>                  
        <option value="1989" >1989</option>                  
        <option value="1990" >1990</option>                  
        <option value="1991" >1991</option>                  
        <option value="1992" >1992</option>                  
        <option value="1993" >1993</option>                  
        <option value="1994" >1994</option>                  
        <option value="1995" >1995</option>                  
        <option value="1996" >1996</option>                  
        <option value="1997" >1997</option>                  
        <option value="1998" selected>1998</option>                  
        <option value="1999" >1999</option>                  
        <option value="2000" >2000</option>                  
        <option value="2001" >2001</option>                  
        <option value="2002" >2002</option>                  
        <option value="2003" >2003</option>                  
        <option value="2004" >2004</option>                  
        <option value="2005" >2005</option>                  
        <option value="2006" >2006</option>                  
        <option value="2007" >2007</option>                  
        <option value="2008" >2008</option>                  
        <option value="2009" >2009</option>           
        <option value="2010" >2010</option> 
		<option value="2011" >2011</option> 
        <option value="2012" >2012</option>                  
        <option value="2013" >2013</option>                  
        <option value="2014" >2014</option>                 
        <option value="2015" >2015</option>                  
        <option value="2016" >2016</option>                  
        <option value="2017" >2017</option>                  
        <option value="2018" >2018</option>                  
        <option value="2019" >2019</option>           
        <option value="2020" >2020</option> 
		<option value="2021" >2021</option> 
              </select> 年 <select name="nmonth" class="zbslt">  
        <option value="1" >1</option>                  
        <option value="2" >2</option>                  
        <option value="3" selected>3</option>                  
        <option value="4" >4</option>                  
        <option value="5" >5</option>                  
        <option value="6" >6</option>                  
        <option value="7" >7</option>                  
        <option value="8" >8</option>                  
        <option value="9" >9</option>                  
        <option value="10" >10</option>                  
        <option value="11" >11</option>                  
        <option value="12" >12</option>            
              </select> 月  
              <select name="nday" class="zbslt">  
        <option value="1" >1</option>                  
        <option value="2" >2</option>                  
        <option value="3" >3</option>                  
        <option value="4" >4</option>                  
        <option value="5" >5</option>                  
        <option value="6" >6</option>                  
        <option value="7" >7</option>                  
        <option value="8" >8</option>                  
        <option value="9" >9</option>                  
        <option value="10" >10</option>                  
        <option value="11" >11</option>                  
        <option value="12" >12</option>                  
        <option value="13" >13</option>                  
        <option value="14" >14</option>                  
        <option value="15" >15</option>                  
        <option value="16" >16</option>                  
        <option value="17" >17</option>                  
        <option value="18" >18</option>                  
        <option value="19" >19</option>                  
        <option value="20" >20</option>                  
        <option value="21" >21</option>                  
        <option value="22" >22</option>                  
        <option value="23" >23</option>                  
        <option value="24" >24</option>                  
        <option value="25" >25</option>                  
        <option value="26" >26</option>                  
        <option value="27" selected>27</option>                  
        <option value="28" >28</option>                  
        <option value="29" >29</option>                  
        <option value="30" >30</option>           
        </select> 日 
		<input type="hidden" name="nongli" value="农历" />
		 <input type="button" value="转为阳历" onClick="CalConv(1);" class="zbbtn2"> 
		<div id="ddd1" class="red" align="center"></div>
</div>
<div class="inform center">
	<font color="#ff0000">公历</font>:<select name="yyear" class="zbslt">  
        <option value="1950" >1950</option>                  
        <option value="1951" >1951</option>                  
        <option value="1952" >1952</option>                  
        <option value="1953" >1953</option>                  
        <option value="1954" >1954</option>                  
        <option value="1955" >1955</option>                  
        <option value="1956" >1956</option>                  
        <option value="1957" >1957</option>                  
        <option value="1958" >1958</option>                  
        <option value="1959" >1959</option>                  
        <option value="1960" >1960</option>                  
        <option value="1961" >1961</option>                  
        <option value="1962" >1962</option>                  
        <option value="1963" >1963</option>                  
        <option value="1964" >1964</option>                  
        <option value="1965" >1965</option>                  
        <option value="1966" >1966</option>                  
        <option value="1967" >1967</option>                  
        <option value="1968" >1968</option>                  
        <option value="1969" >1969</option>                  
        <option value="1970" >1970</option>                  
        <option value="1971" >1971</option>                  
        <option value="1972" >1972</option>                  
        <option value="1973" >1973</option>                  
        <option value="1974" >1974</option>                  
        <option value="1975" >1975</option>                  
        <option value="1976" >1976</option>                  
        <option value="1977" >1977</option>                  
        <option value="1978" >1978</option>                  
        <option value="1979" >1979</option>                  
        <option value="1980" >1980</option>                  
        <option value="1981" >1981</option>                  
        <option value="1982" >1982</option>                  
        <option value="1983" >1983</option>                  
        <option value="1984" >1984</option>                  
        <option value="1985" >1985</option>                  
        <option value="1986" >1986</option>                  
        <option value="1987" >1987</option>                  
        <option value="1988" >1988</option>                  
        <option value="1989" >1989</option>                  
        <option value="1990" >1990</option>                  
        <option value="1991" >1991</option>                  
        <option value="1992" >1992</option>                  
        <option value="1993" >1993</option>                  
        <option value="1994" >1994</option>                  
        <option value="1995" >1995</option>                  
        <option value="1996" >1996</option>                  
        <option value="1997" >1997</option>                  
        <option value="1998" selected>1998</option>                  
        <option value="1999" >1999</option>                  
        <option value="2000" >2000</option>                  
        <option value="2001" >2001</option>                  
        <option value="2002" >2002</option>                  
        <option value="2003" >2003</option>                  
        <option value="2004" >2004</option>                  
        <option value="2005" >2005</option>                  
        <option value="2006" >2006</option>                  
        <option value="2007" >2007</option>                  
        <option value="2008" >2008</option>                  
        <option value="2009" >2009</option>           
        <option value="2010" >2010</option> 
		<option value="2011" >2011</option> 
        <option value="2012" >2012</option>                  
        <option value="2013" >2013</option>                  
        <option value="2014" >2014</option>                 
        <option value="2015" >2015</option>                  
        <option value="2016" >2016</option>                  
        <option value="2017" >2017</option>                  
        <option value="2018" >2018</option>                  
        <option value="2019" >2019</option>           
        <option value="2020" >2020</option> 
		<option value="2021" >2021</option> 
              </select> 年 <select name="ymonth" class="zbslt">  
        <option value="1" >1</option>                  
        <option value="2" >2</option>                  
        <option value="3" selected>3</option>                  
        <option value="4" >4</option>                  
        <option value="5" >5</option>                  
        <option value="6" >6</option>                  
        <option value="7" >7</option>                  
        <option value="8" >8</option>                  
        <option value="9" >9</option>                  
        <option value="10" >10</option>                  
        <option value="11" >11</option>                  
        <option value="12" >12</option>            
              </select> 月  
              <select name="yday" class="zbslt">  
        <option value="1" >1</option>                  
        <option value="2" >2</option>                  
        <option value="3" >3</option>                  
        <option value="4" >4</option>                  
        <option value="5" >5</option>                  
        <option value="6" >6</option>                  
        <option value="7" >7</option>                  
        <option value="8" >8</option>                  
        <option value="9" >9</option>                  
        <option value="10" >10</option>                  
        <option value="11" >11</option>                  
        <option value="12" >12</option>                  
        <option value="13" >13</option>                  
        <option value="14" >14</option>                  
        <option value="15" >15</option>                  
        <option value="16" >16</option>                  
        <option value="17" >17</option>                  
        <option value="18" >18</option>                  
        <option value="19" >19</option>                  
        <option value="20" >20</option>                  
        <option value="21" >21</option>                  
        <option value="22" >22</option>                  
        <option value="23" >23</option>                  
        <option value="24" >24</option>                  
        <option value="25" >25</option>                  
        <option value="26" >26</option>                  
        <option value="27" selected>27</option>                  
        <option value="28" >28</option>                  
        <option value="29" >29</option>                  
        <option value="30" >30</option>  
        <option value="31" >31</option> 		
        </select> 日 <input type="hidden" name="gongli" value="公历" /> 
		<input type="button" value="转为阴历" onClick="CalConv(0);" class="zbbtn2">
	<div id="ddd2" class="red" align="center"></div>  
</div>
</form>
 </div><!-- /viewbox -->
 </div><!-- //plt -->
</div>
<!-- /wrapper -->
<SCRIPT language=JavaScript>
function CalConv(M)
{
FIRSTYEAR = 1936;
LASTYEAR = 2031;

LunarCal = [
new tagLunarCal(23, 3, 2, 17, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0 ), /* 1936 */ 
new tagLunarCal( 41, 0, 4, 23, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1 ), 
new tagLunarCal( 30, 7, 5, 28, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1 ), 
new tagLunarCal( 49, 0, 6, 33, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ), 
new tagLunarCal( 38, 0, 0, 38, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ), /* 1940 */ 
new tagLunarCal( 26, 6, 2, 44, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 45, 0, 3, 49, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 35, 0, 4, 54, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ), 
new tagLunarCal( 24, 4, 5, 59, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 ), /* 1944 */ 
new tagLunarCal( 43, 0, 0, 5, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1 ), 
new tagLunarCal( 32, 0, 1, 10, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1 ), 
new tagLunarCal( 21, 2, 2, 15, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ), 
new tagLunarCal( 40, 0, 3, 20, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ), /* 1948 */ 
new tagLunarCal( 28, 7, 5, 26, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ), 
new tagLunarCal( 47, 0, 6, 31, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1 ), 
new tagLunarCal( 36, 0, 0, 36, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 26, 5, 1, 41, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ), /* 1952 */ 
new tagLunarCal( 44, 0, 3, 47, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1 ), 
new tagLunarCal( 33, 0, 4, 52, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0 ), 
new tagLunarCal( 23, 3, 5, 57, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1 ), 
new tagLunarCal( 42, 0, 6, 2, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1 ), /* 1956 */ 
new tagLunarCal( 30, 8, 1, 8, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 48, 0, 2, 13, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 38, 0, 3, 18, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 ), 
new tagLunarCal( 27, 6, 4, 23, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0 ), /* 1960 */ 
new tagLunarCal( 45, 0, 6, 29, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 35, 0, 0, 34, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), 
new tagLunarCal( 24, 4, 1, 39, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 ), 
new tagLunarCal( 43, 0, 2, 44, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 ), /* 1964 */ 
new tagLunarCal( 32, 0, 4, 50, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1 ), 
new tagLunarCal( 20, 3, 5, 55, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ), 
new tagLunarCal( 39, 0, 6, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 29, 7, 0, 5, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1 ), /* 1968 */ 
new tagLunarCal( 47, 0, 2, 11, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ), 
new tagLunarCal( 36, 0, 3, 16, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0 ), 
new tagLunarCal( 26, 5, 4, 21, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1 ), 
new tagLunarCal( 45, 0, 5, 26, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 ), /* 1972 */ 
new tagLunarCal( 33, 0, 0, 32, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1 ), 
new tagLunarCal( 22, 4, 1, 37, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1 ), 
new tagLunarCal( 41, 0, 2, 42, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1 ), 
new tagLunarCal( 30, 8, 3, 47, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ), /* 1976 */ 
new tagLunarCal( 48, 0, 5, 53, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1 ), 
new tagLunarCal( 37, 0, 6, 58, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ), 
new tagLunarCal( 27, 6, 0, 3, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0 ), 
new tagLunarCal( 46, 0, 1, 8, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0 ), /* 1980 */ 
new tagLunarCal( 35, 0, 3, 14, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1 ), 
new tagLunarCal( 24, 4, 4, 19, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1 ), 
new tagLunarCal( 43, 0, 5, 24, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1 ), 
new tagLunarCal( 32, 10, 6, 29, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1 ), /* 1984 */ 
new tagLunarCal( 50, 0, 1, 35, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 39, 0, 2, 40, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1 ), 
new tagLunarCal( 28, 6, 3, 45, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0 ), 
new tagLunarCal( 47, 0, 4, 50, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), /* 1988 */ 
new tagLunarCal( 36, 0, 6, 56, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0 ), 
new tagLunarCal( 26, 5, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1 ), 
new tagLunarCal( 45, 0, 1, 6, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0 ), 
new tagLunarCal( 34, 0, 2, 11, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0 ), /* 1992 */ 
new tagLunarCal( 22, 3, 4, 17, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 40, 0, 5, 22, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0 ), 
new tagLunarCal( 30, 8, 6, 27, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1 ), 
new tagLunarCal( 49, 0, 0, 32, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1 ), /* 1996 */ 
new tagLunarCal( 37, 0, 2, 38, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), 
new tagLunarCal( 27, 5, 3, 43, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1 ), 
new tagLunarCal( 46, 0, 4, 48, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1 ), /* 1999 */
new tagLunarCal( 35, 0, 5, 53, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1 ), /* 2000 */
new tagLunarCal( 23, 4, 0, 59, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),
new tagLunarCal( 42, 0, 1, 4, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),
new tagLunarCal( 31, 0, 2, 9, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0 ),
new tagLunarCal( 21, 2, 3, 14, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1 ), /* 2004 */
new tagLunarCal( 39, 0, 5, 20, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1 ),
new tagLunarCal( 28, 7, 6, 25, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1 ),
new tagLunarCal( 48, 0, 0, 30, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1 ),
new tagLunarCal( 37, 0, 1, 35, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1 ), /* 2008 */
new tagLunarCal( 25, 5, 3, 41, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ),
new tagLunarCal( 44, 0, 4, 46, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1 ),
new tagLunarCal( 33, 0, 5, 51, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ),
new tagLunarCal( 22, 4, 6, 56, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ), /* 2012 */

new tagLunarCal( 40, 0, 1, 2, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 ),
new tagLunarCal( 30, 9, 2, 7, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ),
new tagLunarCal( 49, 0, 3, 12, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1 ),
new tagLunarCal( 38, 0, 4, 17, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0 ), /* 2016 */
new tagLunarCal( 27, 6, 6, 23, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1 ),
new tagLunarCal( 46, 0, 0, 28, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0 ),
new tagLunarCal( 35, 0, 1, 33, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ),
new tagLunarCal( 24, 4, 2, 38, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1 ), /* 2020 */
new tagLunarCal( 42, 0, 4, 44, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 ),
new tagLunarCal( 31, 0, 5, 49, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0 ),
new tagLunarCal( 21, 2, 6, 54, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1 ),
new tagLunarCal( 40, 0, 0, 59, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1 ), /* 2024 */
new tagLunarCal( 28, 6, 2, 5, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0 ),
new tagLunarCal( 47, 0, 3, 10, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1 ),
new tagLunarCal( 36, 0, 4, 15, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1 ),
new tagLunarCal( 25, 5, 5, 20, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0 ), /* 2028 */
new tagLunarCal( 43, 0, 0, 26, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 ),
new tagLunarCal( 32, 0, 1, 31, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0 ),
new tagLunarCal( 22, 3, 2, 36, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0 ) ];


/* 西曆年每月之日數 */
SolarCal = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];

/* 西曆年每月之累積日數, 平年與閏年 */
SolarDays = [
0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365, 396,
0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366, 397 ];

AnimalIdx = ["馬 ", "羊 ", "猴 ", "雞 ", "狗 ", "豬 ", "鼠 ", "牛 ", "虎 ", "兔 ", "龍 ", "蛇 " ];
LocationIdx = [ "南", "東", "北", "西" ];


if (M==0) { //阳历到阴历
if (!IsInteger(form_jisuan.yyear.value) || !IsInteger(form_jisuan.ymonth.value) || !IsInteger(form_jisuan.yday.value)) return alert("请输入合法阳历年月日数值");   
SolarYear = parseInt(form_jisuan.yyear.value);
SolarMonth = parseInt(form_jisuan.ymonth.value);
SolarDate = parseInt(form_jisuan.yday.value);


if ( SolarYear <= FIRSTYEAR || SolarYear > LASTYEAR ) return alert("请输入1936-2031有效年份");

sm = SolarMonth - 1;

if ( sm < 0 || sm > 11 ) return alert(请输入有效月份);

leap = GetLeap( SolarYear );

if ( sm == 1 )
d = leap + 28;
else
d = SolarCal[sm];

if ( SolarDate < 1 || SolarDate > d ) return 3;

y = SolarYear - FIRSTYEAR;
acc = SolarDays[ leap*14 + sm ] + SolarDate;
kc = acc + LunarCal[y].BaseKanChih;
Kan = kc % 10;
Chih = kc % 12;
Location = LocationIdx[kc % 4];
Age = kc % 60;
if ( Age < 22 )
Age = 22 - Age;
else
Age = 82 - Age;

Age =Age + 3;

if (Age < 10)
Age=Age+60;

Animal = AnimalIdx[ Chih ];

if ( acc <= LunarCal[y].BaseDays ) {
y--;
LunarYear = SolarYear - 1;
leap = GetLeap( LunarYear );
sm += 12;
acc = SolarDays[leap*14 + sm] + SolarDate;
}
else
LunarYear = SolarYear;

l1 = LunarCal[y].BaseDays;
for ( i=0; i<13; i++ ) {
l2 = l1 + LunarCal[y].MonthDays[i] + 29;
if ( acc <= l2 ) break;
l1 = l2;
}

LunarMonth = i + 1;
LunarDate = acc - l1;
im = LunarCal[y].Intercalation;

if ( im != 0 && LunarMonth > im ) {
LunarMonth--;
if ( LunarMonth == im ) LunarMonth = -im;
}

if ( LunarMonth > 12 ) LunarMonth -= 12;
document.getElementById("ddd2").innerHTML="农历为:"+ LunarYear + "年" + LunarMonth + "月" + LunarDate + "日";
//alert("农历为:"+ LunarYear + "年" + LunarMonth + "月" + LunarDate + "日" );
return 0;
}

else /* 阴历转阳历 */ 
{ 
   if (!IsInteger(form_jisuan.nyear.value) || !IsInteger(form_jisuan.nmonth.value) || !IsInteger(form_jisuan.nday.value)) return alert("请输入合法农历年月日数值");   
   LunarYear = parseInt(form_jisuan.nyear.value);
   LunarMonth = parseInt(form_jisuan.nmonth.value);
   LunarDate = parseInt(form_jisuan.nday.value);

        if ( LunarYear < FIRSTYEAR || LunarYear >= LASTYEAR ) return alert("请输入1936-2031有效年份");   
          
        y = LunarYear - FIRSTYEAR ; 
        im = LunarCal[y].Intercalation; 
        lm = LunarMonth; 
          
        if ( lm < 0 ) 
        { 
            if ( lm != -im ) 
                return alert(请输入有效月份);   
        } 
        else if ( lm < 1 || lm > 12 ) return alert(请输入有效月份);   
        
        if ( im != 0 ) 
        { 
            if ( lm > im ) 
                lm++; 
            else if ( lm == -im ) 
                lm = im + 1; 
        } 
        lm--;

        if ( LunarDate > LunarCal[y].MonthDays[lm] + 29 ) 
            return alert("农历日期不正确");
           
        
        acc = 0;
        for ( i=0; i < lm;i++) {

         acc+= LunarCal[y].MonthDays[i] + 29;
          
         
       }
       
        acc +=LunarCal[y].BaseDays + LunarDate;
           
        
             
            leap = GetLeap( LunarYear ); 
            
            
        for ( i=13; i>=0; i-- ) {
        
            if ( acc > SolarDays[leap*14+i] ) 
                break; 
        }       
             SolarDate = acc - SolarDays[leap*14 + i] ;
            
            
           
            if ( i <= 11 ) 
            { 
              
                SolarYear = LunarYear; 
                SolarMonth = i + 1; 
            } 
            else 
            { 
                
                SolarYear = LunarYear + 1; 
                SolarMonth = i - 11; 
            } 
             
         
            leap = GetLeap( SolarYear ); 
            y = SolarYear - FIRSTYEAR; 
            
            //acc = SolarDays[leap][SolarMonth-1] + SolarDate; 
            acc = SolarDays[leap*14 + SolarMonth-1] + SolarDate;
            
            weekday = ( acc + LunarCal[y].BaseWeekday ) % 7; 
            kc = acc + LunarCal[y].BaseKanChih; 
            kan = kc % 10; 
            chih = kc % 12; 
            document.getElementById("ddd1").innerHTML="阳历为:"+ SolarYear + "年" + SolarMonth + "月" + SolarDate + "日";
            //alert("阳历为:"+ SolarYear + "年" + SolarMonth + "月" + SolarDate + "日" );      
          
            return 0;
}//else结束

}

/* 闰年, 返回 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 tagLunarCal( d, i, w, k, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13) {
this.BaseDays = d;         /* 1 月 1 日到正月初一的累计日 */
this.Intercalation = i;    /* 闰月月份. 0==此年沒有闰月 */
this.BaseWeekday = w;      /* 此年 1 月 1 日为星期减 1 */
this.BaseKanChih = k;      /* 此年 1 月 1 日之干支序号减 1 */
this.MonthDays = [ m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, m12, m13 ]; /* 此农历年每月之大小, 0==小月(29日), 1==大月(30日) */
}

//-->


//<!--


function IsInteger(string ,sign) 
{ 
var integer; 
if ((sign!=null) && (sign!='-') && (sign!='+')) 
{ 
   alert('IsInter(string,sign)的参数出错:nsign为null或"-"或"+"'); 
   return false; 
} 
integer = parseInt(string); 
if (isNaN(integer)) 
{ 
   return false; 
} 
else if (integer.toString().length==string.length) 
{ 
   if ((sign==null) || (sign=='-' && integer<0) || (sign=='+' && integer>0)) 
   { 
     return true; 
   } 
   else 
     return false; 
} 
else 
   return false; 
}

//--></SCRIPT>

</body>
</html>

 

 

posted @ 2019-10-10 17:27  GL_BKY  阅读(1739)  评论(0编辑  收藏  举报