javascript农历

原创 2016年05月21日 21:39:56

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>日期时间带星期农历js代码</title>
</head>

<body>
<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   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);
</script>


</body>
</html>

JavaScript实现1900-2100区间内的公历、农历互转

/** * @1900-2100区间内的公历、农历互转 * @charset UTF-8 * @Author chenjinxin(chenjinxin@primeton.com) ...
  • YcUrial
  • YcUrial
  • 2017年11月09日 09:35
  • 47

javascript显示农历

var bsYear; var bsDate; var bsWeek; var arrLen=8; //数组长度 var sValue=0; //当年的秒数 var dayiy=0; ...

利用Javascript获取当前日期的农历日期

JavaScript代码 1: /*设置农历日期*/ 2: var CalendarData=new Array(100); 3: var madd=new Array(12)...

JavaScript转换农历类

var LunarDate = { madd: new Array(0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334), ...

公历农历互换的javascript

  • 2013年03月17日 18:54
  • 24KB
  • 下载

带农历的JavaScript日期时间

  • 2010年06月22日 11:30
  • 11KB
  • 下载

javascript 日期 新历 农历 生肖 农历节庆 总结

因为最近项目需要用js做一个日历控件,所以到网上去搜了一些算法,自己根据这些算法也做了一些优化,今天总结一下,以便日后使用,感谢原作者 //新历日期 var today = new Date...

Js获取当前日期和农历日期

[javascript] view plain copy today=new Date();   function initArray(){      this.le...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript农历
举报原因:
原因补充:

(最多只允许输入30个字)