获取阴历(农历)和当前日期的js代码


Posted in Javascript onFebruary 15, 2016

本文为大家分享了一段js显示阴历(农历)和当前日期的关键性代码,供大家参考,具体内容如下

var CalendarData=new Array(100);
var madd=new Array(12);
var tgString="甲乙丙丁戊己庚辛壬癸";
var dzString="子丑寅卯辰巳午未申酉戌亥";
var numString="一二三四五六七八九十";
var monString="正二三四五六七八九十冬腊";
var weekString="日一二三四五六";
var sx="鼠牛虎兔龙蛇马羊猴鸡狗猪";
var cYear,cMonth,cDay,TheDate;
CalendarData = new Array(0xA4B,0x5164B,0x6A5,0x6D4,0x415B5,0x2B6,0x957,0x2092F,0x497,0x60C96,0xD4A,0xEA5,0x50DA9,0x5AD,0x2B6,0x3126E, 0x92E,0x7192D,0xC95,0xD4A,0x61B4A,0xB55,0x56A,0x4155B, 0x25D,0x92D,0x2192B,0xA95,0x71695,0x6CA,0xB55,0x50AB5,0x4DA,0xA5B,0x30A57,0x52B,0x8152A,0xE95,0x6AA,0x615AA,0xAB5,0x4B6,0x414AE,0xA57,0x526,0x31D26,0xD95,0x70B55,0x56A,0x96D,0x5095D,0x4AD,0xA4D,0x41A4D,0xD25,0x81AA5,0xB54,0xB6A,0x612DA,0x95B,0x49B,0x41497,0xA4B,0xA164B, 0x6A5,0x6D4,0x615B4,0xAB6,0x957,0x5092F,0x497,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="";
tmp+=tgString.charAt((cYear-4)%10);
tmp+=dzString.charAt((cYear-4)%12);
tmp+="(";
tmp+=sx.charAt((cYear-4)%12);
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(){
document.write(GetLunarDay(yy,mm,dd));
}

页面调用代码:

<script language="JavaScript" type="text/javascript" src="getCNdate.js"></script>
 
<script type="text/javascript">showCal();</script>

代码二:用JavaScript获取当前农历日期

<script type="text/javascript">
 var sWeek = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
 var dNow = new Date();
 var CalendarData=new Array(100);var madd=new Array(12);var tgString="甲乙丙丁戊己庚辛壬癸";var dzString="子丑寅卯辰巳午未申酉戌亥";var numString="一二三四五六七八九十";var monString="正二三四五六七八九十冬腊";var weekString="日一二三四五六";var sx="鼠牛虎兔龙蛇马羊猴鸡狗猪";var cYear,cMonth,cDay,TheDate;
CalendarData = new Array(        0xA4B,0x5164B,0x6A5,0x6D4,0x415B5,0x2B6,0x957,0x2092F,0x497,0x60C96,           0xD4A,0xEA5,0x50DA9,0x5AD,0x2B6,0x3126E, 0x92E,0x7192D,0xC95,0xD4A,            0x61B4A,0xB55,0x56A,0x4155B, 0x25D,0x92D,0x2192B,0xA95,0x71695,0x6CA,          0xB55,0x50AB5,0x4DA,0xA5B,0x30A57,0x52B,0x8152A,0xE95,0x6AA,0x615AA,           0xAB5,0x4B6,0x414AE,0xA57,0x526,0x31D26,0xD95,0x70B55,0x56A,0x96D,          0x5095D,0x4AD,0xA4D,0x41A4D,0xD25,0x81AA5, 0xB54,0xB6A,0x612DA,0x95B,
0x49B,0x41497,0xA4B,0xA164B, 0x6A5,0x6D4,0x615B4,0xAB6,0x957,0x5092F,
0x497,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.getFullYear(); 
 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=""; tmp+=tgString.charAt((cYear-4)%10); 
tmp+=dzString.charAt((cYear-4)%12); 
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)
{
 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); 
function getFullYear(d){// 修正firefox下year错误
yr=d.getYear();if(yr<1000)
yr+=1900;return yr;}
function showDate() {
 var sValue = getFullYear(dNow)+"年"+(dNow.getMonth()+1)+"月"+dNow.getDate()+"日"+" "+sWeek[dNow.getDay()]+" ";
 sValue+=GetLunarDay(yy,mm,dd);
   document.getElementById("pDate").innerHTML = sValue;
};
window.onload=showDate;
</script>

知道如何获取农历,如何呢获取当前日期也很简单。

function GetCurrentDateTime() {
  var d = new Date();
  var year = d.getFullYear();
  var month = d.getMonth() + 1;
  var date = d.getDate();
  var week = d.getDay();
  var hours = d.getHours();
  var minutes = d.getMinutes();
  var seconds = d.getSeconds();
  var ms = d.getMilliseconds();
  var curDateTime = year;
  if (month > 9)
    curDateTime = curDateTime + "年" + month;
  else
    curDateTime = curDateTime + "年0" + month;
  if (date > 9)
    curDateTime = curDateTime + "月" + date + "日";
  else
    curDateTime = curDateTime + "月0" + date + "日";
  if (hours > 9)
    curDateTime = curDateTime + " " + hours;
  else
    curDateTime = curDateTime + " 0" + hours;
  if (minutes > 9)
    curDateTime = curDateTime + ":" + minutes;
  else
    curDateTime = curDateTime + ":0" + minutes;
  if (seconds > 9)
    curDateTime = curDateTime + ":" + seconds;
  else
    curDateTime = curDateTime + ":0" + seconds;
  var weekday = "";
  if (week == 0)
    weekday = "星期日";
  else if (week == 1)
    weekday = "星期一";
  else if (week == 2)
    weekday = "星期二";
  else if (week == 3)
    weekday = "星期三";
  else if (week == 4)
    weekday = "星期四";
  else if (week == 5)
    weekday = "星期五";
  else if (week == 6)
    weekday = "星期六";
  curDateTime = curDateTime + " " + weekday;
  return curDateTime;
}

页面调用代码:

<script language="JavaScript" type="text/javascript" src="getToday.js"></script>

希望本文所述对大家利用js代码获取阴历(农历)日期有所帮助,抓紧收藏起来吧!

Javascript 相关文章推荐
js操作Xml(向服务器发送Xml,处理服务器返回的Xml)(IE下有效)
Jan 30 Javascript
JavaScript Event学习第五章 高级事件注册模型
Feb 07 Javascript
使用js 设置url参数
Jul 08 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
javascript如何创建对象
Aug 29 Javascript
JS实现图片放大缩小的方法
Feb 15 Javascript
jQuery 表单序列化实例代码
Jun 11 jQuery
基于 flexible 的 Vue 组件:Toast -- 显示框效果
Dec 26 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
May 16 Javascript
Vue 实现一个命令式弹窗组件功能
Sep 25 Javascript
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 Javascript
React+EggJs实现断点续传的示例代码
Jul 07 Javascript
极易被忽视的javascript面试题七问七答
Feb 15 #Javascript
在JavaScript中使用JSON数据
Feb 15 #Javascript
三分钟带你玩转jQuery.noConflict()
Feb 15 #Javascript
轻松搞定jQuery.noConflict()
Feb 15 #Javascript
JavaScript的Backbone.js框架的一些使用建议整理
Feb 14 #Javascript
简单了解Backbone.js的Model模型以及View视图的源码
Feb 14 #Javascript
Backbone.js框架中简单的View视图编写学习笔记
Feb 14 #Javascript
You might like
人族 TERRAN 概述
2020/03/14 星际争霸
PHP添加MySQL数据记录代码
2008/06/07 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
基于jquery &amp; json的省市区联动代码
2012/06/26 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
jQuery中data()方法用法实例
2014/12/27 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
python简单文本处理的方法
2015/07/10 Python
Python文件的读写和异常代码示例
2017/10/31 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
Shell编程面试题
2012/05/30 面试题
党章学习思想汇报
2014/01/14 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
土建施工员岗位职责
2014/07/16 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
初中同学会活动方案
2014/08/22 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
民事代理词范文
2015/05/25 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL