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 相关文章推荐
Aptana调试javascript图解教程
Nov 30 Javascript
正则表达式搭配js轻松处理json文本方便而老古
Feb 17 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
May 05 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
Mar 04 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
May 03 Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 Javascript
mint-ui在vue中的使用示例
Apr 05 Javascript
vue 自定义组件添加原生事件
Apr 21 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单例模式详细介绍
2015/07/01 PHP
分享PHP守护进程类
2015/12/30 PHP
weiphp微信公众平台授权设置
2016/01/04 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
Javascript实现滚动图片新闻的实例代码
2013/11/27 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
JS随机密码生成算法
2019/09/23 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
[59:30]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
品质主管的岗位职责
2013/12/04 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
五年级上册复习计划
2015/01/19 职场文书
党员转正党支部意见
2015/06/02 职场文书
运动员加油词
2015/07/18 职场文书
2015年小学实验室工作总结
2015/07/28 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
python绘制箱型图
2021/04/27 Python
继承Win10缺点!教你关闭Win11烦人的网络搜索
2021/11/23 数码科技
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
MySQL索引失效场景及解决方案
2022/07/23 MySQL