• 公历农历转换器


    公历农历转换器 - 副本、爬至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>
    

     

  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/guoziyi/p/11649431.html
Copyright © 2020-2023  润新知