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监测ActiveX控件是否已经安装过的代码
Sep 02 Javascript
动态创建的表格单元格中的事件实现代码
Dec 30 Javascript
JavaScript入门教程(6) Window窗口对象
Jan 31 Javascript
jquery文本框中的事件应用以输入邮箱为例
May 06 Javascript
javascript实现倒计时(精确到秒)
Jun 26 Javascript
JQuery解析XML的方法小结
Apr 02 Javascript
浅谈JS中String()与 .toString()的区别
Oct 20 Javascript
Vue底层实现原理总结
Feb 17 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
Feb 22 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
Jan 27 Javascript
JavaScript如何借用构造函数继承
Nov 06 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 发送带附件邮件示例
2014/01/23 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
php动态函数调用方法
2015/05/21 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
AngularJS之页面跳转Route实例代码
2017/03/10 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
webpack优化的深入理解
2018/12/10 Javascript
Python实时获取cmd的输出
2015/12/13 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
python中实现控制小数点位数的方法
2019/01/24 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
通过shell+python实现企业微信预警
2019/03/07 Python
Python hashlib模块加密过程解析
2019/11/05 Python
Python matplotlib实时画图案例
2020/04/23 Python
2014年巴西世界杯口号
2014/06/05 职场文书
大学生工作自荐书
2014/06/16 职场文书
公司年底活动方案
2014/08/17 职场文书
2014年检验员工作总结
2014/11/19 职场文书
实习指导教师评语
2014/12/30 职场文书
初中信息技术教学反思
2016/02/16 职场文书
python四种出行路线规划的实现
2021/06/23 Python