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面向对象编程
Mar 02 Javascript
提升你网站水平的jQuery插件集合推荐
Apr 19 Javascript
JavaScript中“基本类型”之争小结
Jan 03 Javascript
js算法中的排序、数组去重详细概述
Oct 14 Javascript
JS仿淘宝实现的简单滑动门效果代码
Oct 14 Javascript
jquery插件EasyUI中form表单提交实例分享
Jan 11 Javascript
jQuery绑定事件的四种方式介绍
Oct 31 Javascript
微信小程序加载更多 点击查看更多
Nov 29 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
Mar 03 Javascript
vue this.reload 方法 配置
Sep 12 Javascript
JavaScript事件委托实现原理及优点进行
Aug 29 Javascript
JavaScript前端面试组合函数
Jun 21 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中的观察者模式简单实例
2015/01/20 PHP
php中mysql连接方式PDO使用详解
2015/02/25 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
2016/11/22 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
匹配任意字符的正则表达式写法
2010/04/29 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
node.js正则表达式获取网页中所有链接的代码实例
2014/06/03 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
python多线程用法实例详解
2015/01/15 Python
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
Python中私有属性的定义方式
2020/03/05 Python
html5清空画布方法(三种)
2017/10/16 HTML / CSS
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
上级检查欢迎词
2014/01/18 职场文书
2014自荐信的写作技巧
2014/01/28 职场文书
服装店营销方案
2014/03/10 职场文书
单位实习介绍信
2015/05/05 职场文书
2015元旦感言
2015/12/09 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis