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 密码强弱度检测万能插件
Feb 25 Javascript
删除select中所有option选项jquery代码
Aug 12 Javascript
JavaScript中对象属性的添加和删除示例
May 12 Javascript
javascript基于HTML5 canvas制作画箭头组件
Jun 25 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 Javascript
AngularJs基本特性解析(一)
Jul 21 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
Sep 04 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
Vue路由守卫之路由独享守卫
Sep 25 Javascript
关于Node.js中频繁修改代码重启服务器的问题
Oct 15 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 Vue.js
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连接Oracle for NT 远程数据库
2006/10/09 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
php并发加锁问题分析与设计代码实例讲解
2021/02/26 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
Vue自定义toast组件的实例代码
2018/08/15 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
基于javascript的无缝滚动动画实现2
2020/08/07 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
微信小程序实现可拖动悬浮图标(包括按钮角标的实现)
2020/12/29 Javascript
Python实现高效求解素数代码实例
2015/06/30 Python
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
python WindowsError的错误代码详解
2017/07/23 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
python+OpenCV实现图像拼接
2020/03/05 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
德国苹果商店:MacTrade
2020/05/18 全球购物
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
银行自荐信范文
2015/03/25 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫