Asp学习站欢迎你!

显示公历、农历和星期的又一则方法

来源:ASP学习网 作者:Admin 时间:08-07-24 点击:

<script>  
    var     CalendarData=new     Array(20);  
    var     madd=new     Array(12);  
    var     TheDate=new     Date();  
    var     tgString="甲乙丙丁戊己庚辛壬癸";  
    var     dzString="子丑寅卯辰巳午未申酉戌亥";  
    var     numString="一二三四五六七八九十";  
    var     monString="正二三四五六七八九十冬腊";  
    var     weekString="日一二三四五六";  
    var     sx="鼠牛虎兔龙蛇马羊猴鸡狗猪";  
    var     cYear;  
    var     cMonth;  
    var     cDay;  
    var     cHour;  
    var     cDateString;  
    var     DateString;  
    var     Browser=navigator.appName;  
   
    function     init()  
    {    
        CalendarData[0]=0x41A95;  
        CalendarData[1]=0xD4A;  
        CalendarData[2]=0xDA5;  
        CalendarData[3]=0x20B55;  
        CalendarData[4]=0x56A;  
        CalendarData[5]=0x7155B;  
        CalendarData[6]=0x25D;  
        CalendarData[7]=0x92D;  
        CalendarData[8]=0x5192B;  
        CalendarData[9]=0xA95;  
        CalendarData[10]=0xB4A;  
        CalendarData[11]=0x416AA;  
        CalendarData[12]=0xAD5;  
        CalendarData[13]=0x90AB5;  
        CalendarData[14]=0x4BA;  
        CalendarData[15]=0xA5B;  
        CalendarData[16]=0x60A57;  
        CalendarData[17]=0x52B;  
        CalendarData[18]=0xA93;  
        CalendarData[19]=0x40E95;  
        madd[0]=0;  
        madd[1]=31;  
        madd[2]=59;  
        madd[3]=90;  
        madd[4]=120;  
        madd[5]=151;  
        madd[6]=181;  
        madd[7]=212;  
        madd[8]=243;  
        madd[9]=273;  
        madd[10]=304;  
        madd[11]=334;  
      }  
   
    function     GetBit(m,n)  
    {    
          return     (m>>n)&1;  
    }  
   
    function     e2c()  
    {      
        var     total,m,n,k;  
        var     isEnd=false;  
        var     tmp=TheDate.getYear();  
        if     (tmp<1900)       tmp+=1900;  
        total=(tmp-2001)*365  
            +Math.floor((tmp-2001)/4)  
            +madd[TheDate.getMonth()]  
            +TheDate.getDate()  
            -23;  
        if     (TheDate.getYear()%4==0&&TheDate.getMonth()>1)  
            total++;  
        for(m=0;;m++)  
        {      
            k=(CalendarData[m]<0xfff)?11:12;  
            for(n=k;n>=0;n--)  
            {  
                if(total<=29+GetBit(CalendarData[m],n))  
                {    
                    isEnd=true;  
                    break;  
                }  
                total=total-29-GetBit(CalendarData[m],n);  
            }  
            if(isEnd)break;  
        }  
        cYear=2001     +     m;  
        cMonth=k-n+1;  
        cDay=total;  
        if(k==12)  
        {  
            if(cMonth==Math.floor(CalendarData[m]/0x10000)+1)  
                cMonth=1-cMonth;  
            if(cMonth>Math.floor(CalendarData[m]/0x10000)+1)  
                cMonth--;  
        }  
        cHour=Math.floor((TheDate.getHours()+3)/2);  
    }  
   
    function     GetcDateString()  
    {     var     tmp="";  
        tmp+=tgString.charAt((cYear-4)%10);         //年干  
        tmp+=dzString.charAt((cYear-4)%12);         //年支  
        tmp+="年(";  
        tmp+=sx.charAt((cYear-4)%12);  
        tmp+=")";  
        if(cMonth<1)  
        {    
          tmp+="闰";  
            tmp+=monString.charAt(-cMonth-1);  
        }  
        else  
            tmp+=monString.charAt(cMonth-1);  
        tmp+="月";  
        tmp+=(cDay<11)?"初":((cDay<20)?"十":((cDay<30)?"廿":"卅"));  
        if(cDay%10!=0||cDay==10)  
            tmp+=numString.charAt((cDay-1)%10);  
        if(cHour==13)tmp+="夜";  
            tmp+=dzString.charAt((cHour-1)%12);  
        tmp+="时";  
        cDateString=tmp;  
        return     tmp;  
    }  
   
    function     GetDateString()  
    {    
        var     tmp="";  
        var     t1=TheDate.getYear();  
        if     (t1<1900)t1+=1900;  
        tmp+=t1  
                  +"-"  
                  +(TheDate.getMonth()+1)+"-"  
                  +TheDate.getDate()+"     "  
                  +TheDate.getHours()+":"  
                  +((TheDate.getMinutes()<10)?"0":"")  
                  +TheDate.getMinutes()  
                  +"       星期"+weekString.charAt(TheDate.getDay());    
        DateString=tmp;  
        return     tmp;  
    }  
   
    init();  
    e2c();  
    GetDateString();  
    GetcDateString();  
    document.write(DateString,"&nbsp;",cDateString);  
    </script>
打印】 【关闭
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 验证码: 验证码 查看所有评论