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 相关文章推荐
JavaScript实现禁止后退的方法
Dec 27 Javascript
一些易混淆且不常用的属性,希望有用
Jan 29 Javascript
IE之动态添加DOM节点触发window.resize事件
Jul 27 Javascript
JS:window.onload的使用介绍
Nov 13 Javascript
轻量级的原生js日历插件calendar.js使用指南
Apr 28 Javascript
JavaScript_object基础入门(必看篇)
Jun 13 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 Javascript
JavaScript省市级联下拉菜单实例
Feb 14 Javascript
layer弹窗插件操作方法详解
May 19 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
Jan 22 jQuery
vue中设置、获取、删除cookie的方法
Sep 21 Javascript
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 Javascript
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+html5+ajax实现上传图片的方法
2016/05/14 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
JS如何设置iOS中微信浏览器的title
2016/11/22 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
Python帮你识破双11的套路
2019/11/11 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
巴西手表购物网站:eclock
2019/03/19 全球购物
SQL中where和having的区别
2012/06/17 面试题
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2014年资料员工作总结
2014/11/18 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
语文教师求职信范文
2015/03/20 职场文书
导游词之青岛太清宫
2019/12/13 职场文书
python爬虫selenium模块详解
2021/03/30 Python
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python