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 相关文章推荐
Sample script that deletes a SQL Server database
Jun 16 Javascript
js TextArea的选中区域处理
Dec 28 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
Aug 18 Javascript
了不起的node.js读书笔记之node的学习总结
Dec 22 Javascript
JavaScript中toString()方法的使用详解
Jun 05 Javascript
基于jquery实现人物头像跟随鼠标转动
Aug 23 Javascript
JavaScript函数节流的两种写法
Apr 07 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
Aug 18 Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
Dec 16 Javascript
JavaScript实现消消乐的源代码
Jan 12 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中使用全局变量的几种方法
2013/06/24 PHP
smarty中常用方法实例总结
2015/08/07 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
使用js原生实现年份轮播选择效果实例
2021/01/12 Javascript
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
介绍Python中的__future__模块
2015/04/27 Python
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
python中实现k-means聚类算法详解
2017/11/11 Python
python3处理含有中文的url方法
2018/05/10 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
事务机电主管工作职责
2014/02/25 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript
浅谈Vue的computed计算属性
2022/03/21 Vue.js