显示动态时间 公历 农历日期的js效果代码

chenyajun  2020-01-29 15:23:39  阅读 2705 次 评论 0 条
<div class="time" id="date"></div>
<script type="text/javascript">
//日历
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()+'  '
            +'<span id="time"></span>'
            +"  星期"+weekString.charAt(TheDate.getDay());
    DateString=tmp;
    return   tmp;
}

init();
e2c();
GetDateString();
GetcDateString();
var today='今天是:'+DateString+"    农历 "+cDateString;
document.getElementById("date").innerHTML = today;

<!--十,分,秒-->
function showLocale(obj){
    var str;
    var hh = obj.getHours();
    if(hh<10)
    hh = '0' + hh;

    var mm = obj.getMinutes();
    if(mm<10) mm = '0' + mm;

    var ss = obj.getSeconds();
    if(ss<10) ss = '0' + ss;

    str = hh + ":" + mm + ":" + ss;
    return(str);
}
function tick(){
    var today;
    today = new Date();
    document.getElementById("time").innerHTML = showLocale(today);
    window.setTimeout("tick()", 1000);
}
tick();
</script>


本文地址:https://chenyajun.net/index.php/post/25.html
版权声明:本文为原创文章,版权归 chenyajun 所有,欢迎分享本文,转载请保留出处!

评论已关闭!