Javascript获取当前日期的农历日期代码


Posted in Javascript onOctober 08, 2014

JavaScript代码

/*设置农历日期*/

var CalendarData=new Array(100);

var madd=new Array(12);

var numString="一二三四五六七八九十";

var monString="正二三四五六七八九十冬腊";

var cYear,cMonth,cDay,TheDate;

// 农历每月只能是29或30天,一年用12(或13)个二进制位表示,从高到低,对应位为1表示30天,否则29天

CalendarData = new Array(0xA4B,0x5164B,0x6A5,0x6D4,0x415B5,0x2B6,0×957,0x2092F,0×497,0x60C96,0xD4A,0xEA5,0x50DA9,0x5AD,

0x2B6,0x3126E, 0x92E,0x7192D,0xC95,0xD4A,0x61B4A,0xB55,0x56A,0x4155B, 0x25D,0x92D,0x2192B,0xA95,0×71695,0x6CA,

0xB55,0x50AB5,0x4DA,0xA5B,0x30A57,0x52B,0x8152A,0xE95,0x6AA,0x615AA,0xAB5,0x4B6,0x414AE,0xA57,0×526,0x31D26,0xD95,

0x70B55,0x56A,0x96D,0x5095D,0x4AD,0xA4D,0x41A4D,0xD25,0x81AA5,0xB54,0xB6A,0x612DA,0x95B,0x49B,0×41497,0xA4B,0xA164B,

0x6A5,0x6D4,0x615B4,0xAB6,0×957,0x5092F,0×497,0x64B, 0x30D4A,0xEA5,0x80D65,0x5AC,0xAB6,0x5126D,0x92E,0xC96,0x41A95,

0xD4A,0xDA5,0x20B55,0x56A,0x7155B,0x25D,0x92D,0x5192B,0xA95,0xB4A,0x416AA,0xAD5,0x90AB5,0x4BA,0xA5B, 0x60A57,0x52B,

0xA93,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(){

TheDate= (arguments.length!=3) ? new Date() : new Date(arguments[0],arguments[1],arguments[2]);

var total,m,n,k;

var isEnd=false;

var tmp=TheDate.getYear();

if(tmp<1900){

tmp+=1900;

}

total=(tmp-1921)*365+Math.floor((tmp-1921)/4)+madd[TheDate.getMonth()]+TheDate.getDate()-38;

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=1921 + 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--;

}

}

}

function GetcDateString(){

var 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);

}

return tmp;

}

function GetLunarDay(solarYear,solarMonth,solarDay){

//solarYear = solarYear<1900?(1900+solarYear):solarYear;

if(solarYear<1921 || solarYear>2020){

return "";

}else{

solarMonth = (parseInt(solarMonth)>0) ? (solarMonth-1) : 11;

e2c(solarYear,solarMonth,solarDay);

return GetcDateString();

}

}

var D=new Date();

var yy=D.getFullYear();

var mm=D.getMonth()+1;

var dd=D.getDate();

var ww=D.getDay();

var ss=parseInt(D.getTime() / 1000);

if (yy<100) yy="19"+yy;

function showCal(){

var nongli = GetLunarDay(yy,mm,dd);

return nongli;

}

/*农历设置end*/

调用

$('#tianqi h5').text(showCal());

效果:

Javascript获取当前日期的农历日期代码

九月十一就是当天的农历日期

Javascript 相关文章推荐
MSN消息提示类
Sep 05 Javascript
浏览器兼容console对象的简要解决方案分享
Oct 24 Javascript
Linux下使用jq友好的打印JSON技巧分享
Nov 18 Javascript
javascript实现复选框超过限制即弹出警告框的方法
Feb 25 Javascript
深入理解JavaScript中的对象复制(Object Clone)
May 18 Javascript
JavaScript中的Object对象学习教程
May 20 Javascript
js图片切换具体实现代码
Oct 13 Javascript
JS+HTML5实现上传图片预览效果完整实例【测试可用】
Apr 20 Javascript
利用Vue实现移动端图片轮播组件的方法实例
Aug 23 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 Javascript
vue与iframe之间的信息交互的实现
Apr 08 Javascript
jQuery实现电梯导航模块
Dec 22 jQuery
javascript中通过arguments参数伪装方法重载
Oct 08 #Javascript
利用原生JavaScript获取元素样式只是获取而已
Oct 08 #Javascript
javascript学习笔记(八)正则表达式
Oct 08 #Javascript
javascript学习笔记(七)Ajax和Http状态码
Oct 08 #Javascript
javascript学习笔记(六)数据类型和JSON格式
Oct 08 #Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 #Javascript
JavaScript中获取高度和宽度函数总结
Oct 08 #Javascript
You might like
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
PHP将URL转换成短网址的算法分享
2016/09/13 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
JS更改select内option属性的方法
2015/10/14 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
浅谈js闭包理解
2019/03/28 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
[02:07]DOTA2新英雄展现中国元素,完美“圣典”亮相央视
2016/12/19 DOTA
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
C#和SQL Server的面试题
2016/08/12 面试题
Linux上比较文件的命令都有哪些
2013/09/28 面试题
《圆明园的毁灭》教学反思
2014/02/28 职场文书
小学生期末评语大全
2014/04/21 职场文书
公司门卫岗位职责范本
2014/07/08 职场文书
向国旗敬礼学生寄语大全
2014/09/30 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers