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 26 Javascript
jquery删除数据记录时的弹出提示效果
May 06 Javascript
JavaScript中的原型和继承详解(图文)
Jul 18 Javascript
Jquery对象和Dom对象的区别分析
Nov 20 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
Jul 27 Javascript
Bootstrap模态框调用功能实现方法
Sep 19 Javascript
JavaScript实现简单生成随机颜色的方法
Sep 21 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
Sep 29 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
Feb 11 Javascript
原生js添加一个或多个类名的方法分析
Jul 30 Javascript
Nuxt.js 静态资源和打包的操作
Nov 06 Javascript
springboot+vue实现文件上传下载
Nov 17 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下关于中英数字混排的字符串分割问题
2010/04/06 PHP
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
composer.lock文件的作用
2016/02/03 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
2016/05/18 PHP
Ruffy javascript 学习笔记
2009/11/30 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
原生js实现简单的链式操作
2017/07/04 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
Angular学习笔记之集成三方UI框架、控件的示例
2018/03/23 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
2019/05/01 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
Python读写Redis数据库操作示例
2014/03/18 Python
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
Python面向对象思想与应用入门教程【类与对象】
2019/04/12 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
如何将字串String转换成整数int
2015/02/21 面试题
车辆维修工自我评价怎么写
2013/09/20 职场文书
大学生毕业自我鉴定
2013/11/06 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
三八妇女节主持词
2015/07/04 职场文书
初中物理教学反思
2016/02/19 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers