zoukankan      html  css  js  c++  java
  • 带农历的JavaScript日期时间

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>带农历的JavaScript日期时间</title>
    </head>
    <body>
    <SCRIPT language=JavaScript>
    <!--
    function CalConv()
     {
        FIRSTYEAR 
    = 1998;
        LASTYEAR 
    = 2031;
        today 
    = new Date();
        SolarYear 
    = today.getFullYear();
        SolarMonth 
    = today.getMonth() + 1;
        SolarDate 
    = today.getDate();
        Weekday 
    = today.getDay();
        LunarCal 
    = [
     
    new tagLunarCal( 2753431001001101101 ),
     
    new tagLunarCal( 4604481001001011101 ), /* 88 */
     
    new tagLunarCal( 3505531100100101101 ), /* 89 */
     
    new tagLunarCal( 2340591101010010101 ),
     
    new tagLunarCal( 420141101010010101 ),
     
    new tagLunarCal( 310291101101001010 ),
     
    new tagLunarCal( 2123140101101010101 ), /* 93 */
     
    new tagLunarCal( 3905200101011010101 ),
     
    new tagLunarCal( 2876251010101011011 ),
     
    new tagLunarCal( 4800300010010111011 ),
     
    new tagLunarCal( 3701351001001011011 ), /* 97 */
     
    new tagLunarCal( 2553411100100101011 ),
     
    new tagLunarCal( 4404461010100101011 ),
     
    new tagLunarCal( 3305511011010010101 ),
     
    new tagLunarCal( 2246561011010101010 ), /* 101 */
     
    new tagLunarCal( 400121011010101010 ),
     
    new tagLunarCal( 309270101010110101 ),
     
    new tagLunarCal( 4903120100101110101 ),
     
    new tagLunarCal( 3804171010010110110 ), /* 105 */
     
    new tagLunarCal( 2766230101001010111 ),
     
    new tagLunarCal( 4600280101001010110 ),
     
    new tagLunarCal( 3501330110100100110 ),
     
    new tagLunarCal( 2442380111010010101 ), /* 109 */
     
    new tagLunarCal( 4204440110101010101 ),
     
    new tagLunarCal( 3105491010110101010 ),
     
    new tagLunarCal( 2126540101010110101 ),
     
    new tagLunarCal( 4000590100101101101 ), /* 113 */
     
    new tagLunarCal( 286251010010101110 ),
     
    new tagLunarCal( 4703101010010011101 ),
     
    new tagLunarCal( 3604151101001001101 ),
     
    new tagLunarCal( 2555201110100100110 ), /* 117 */
     
    new tagLunarCal( 4300261101010100101 ),
     
    new tagLunarCal( 3201311101101010100 ),
     
    new tagLunarCal( 2232360110101101010 ) ];
     
    /* 民国年月日 */
     SolarCal 
    = [ 312831303130313130313031 ];
    SolarDays 
    = [ 03159901201511812122432733043343653960316091121152182213244274305335366397 ];    
        
        
    if ( SolarYear <= FIRSTYEAR || SolarYear > LASTYEAR ) return 1;
        sm 
    = SolarMonth - 1;
            
    if ( sm < 0 || sm > 11 ) return 2;
            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;
        
        Age 
    = kc % 60;
        
    if ( Age < 22 )
            Age 
    = 22 - Age;
        
    else
            Age 
    = 82 - Age;
        
        
    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;
     today
    =new Date();
     
    function initArray(){
     
    this.length=initArray.arguments.length
     
    for(var i=0;i<this.length;i++)
     
    this[i+1]=initArray.arguments[i] }
     
    var d=new initArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
     document.write(
    "", today.getYear(),"",today.getMonth()+1,"",today.getDate(),"日&nbsp;",d[today.getDay()+1],"");
      months 
    = ["","","","","","","","","","","十一","十二"];
      days 
    = ["初一","初二","初三","初四","初五","初六","初七","初八","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"];
     document.write( 
    "&nbsp;农历"+months[LunarMonth-1]+"" + days[LunarDate-1+ "");
     
    return 0
    }
     
    /* 是否有闰年, 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; 
     
    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日) */
    }
    //-->
    </SCRIPT>
    <target=_blank href=/><FONT color=#0066cc><SCRIPT>CalConv();</SCRIPT></FONT></a>
    </body>
    </html>
  • 相关阅读:
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    网络爬虫的相关综述
    HTTP协议和几种常见的状态码
    在php中,如何将一个页面中的标签,替换为用户想输出的内容
    php学习第一讲----php是什么?
  • 原文地址:https://www.cnblogs.com/icejd/p/1916562.html
Copyright © 2011-2022 走看看