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 相关文章推荐
jquery 插件学习(六)
Aug 06 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
探究Javascript模板引擎mustache.js使用方法
Jan 26 Javascript
基于jQuery实现表格内容的筛选功能
Aug 21 Javascript
全屏滚动插件fullPage.js使用实例解析
Oct 21 Javascript
JS实现间歇滚动的运动效果实例
Dec 22 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
JS实现统计字符串中字符出现个数及最大个数功能示例
Jun 04 Javascript
JavaScript基础教程之如何实现一个简单的promise
Sep 11 Javascript
在angularJs中进行数据遍历的2种方法
Oct 08 Javascript
javascript实现计算器功能详解流程
Nov 01 Javascript
vue实现input输入模糊查询的三种方式
Aug 14 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连接MongoDB示例代码
2012/09/06 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
为数据添加append,remove功能
2006/10/03 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
jQuery中 attr() 方法使用小结
2015/05/03 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
[06:06]2018DOTA2亚洲邀请赛主赛事第四日战况回顾 全明星赛欢乐上演
2018/04/07 DOTA
python使用psutil模块获取系统状态
2016/08/27 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
python和opencv实现抠图
2018/07/18 Python
python 默认参数相关知识详解
2019/09/18 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
英国网上花店:Bunches
2016/11/29 全球购物
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
辛德勒的名单观后感
2015/06/03 职场文书
施工现场安全管理制度
2015/08/05 职场文书
社区服务理念口号
2015/12/25 职场文书
九年级数学教学反思
2016/02/17 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers