日期样式:2014年11月9日 13:05 星期日 农历甲午年(马) 闰九月十七 未时

作者:夏雨芭蕉时间:2016-05-10 13:25:47 浏览量:

2014年11月9日 13:05 星期日 农历甲午年(马) 闰九月十七 未时

如下:

    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   totalmnk;
        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);
        tmp+="    ";
        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+" 农历"+cDateString);



Copyright © 2016 Allister All Rights Reserved