JS简单获取当前日期和农历日期的方法


Posted in Javascript onApril 17, 2017

本文实例讲述了JS简单获取当前日期和农历日期的方法。分享给大家供大家参考,具体如下:

navCal.js文件如下:

today=new Date();
function initArray(){
  this.length=initArray.arguments.length
  for(var i=0;i<this.length;i++)
  this[i+1]=initArray.arguments[i] }
  var d=new initArray(
   "星期日",
   "星期一",
   "星期二",
   "星期三",
   "星期四",
   "星期五",
   "星期六");
document.write(today.getFullYear(),"年",today.getMonth()+1,"月",today.getDate(),"日 ",d[today.getDay()+1]," ");
calendar = new Date();
month = calendar.getMonth();
date = calendar.getDate();
if ((month == 0) && (date == 1)) document.write("元旦");
if ((month == 2) && (date == 12)) document.write("植树节");
if ((month == 3) && (date == 5)) document.write("清明节");
if ((month == 4) && (date == 1)) document.write("国际劳动节");
if ((month == 4) && (date == 4)) document.write("青年节");
if ((month == 5) && (date == 1)) document.write("国际儿童节");
if ((month == 7) && (date == 1)) document.write("建军节");
if ((month == 7) && (date == 16)) document.write("七夕情人节");
if ((month == 9) && (date == 1)) document.write("国庆节/国际音乐节/国际老人节");
if ((month == 11) && (date == 24)) document.write("平安夜");
if ((month == 11) && (date == 25)) document.write("圣诞节");
/*农历部分*/
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));
}
showCal();

调用方法:

<script type="text/JavaScript" src="navCal.js"></script>

运行效果图如下:

JS简单获取当前日期和农历日期的方法

Javascript 相关文章推荐
基于jquery的拖动布局插件
Nov 25 Javascript
JS获取DropDownList的value值与text值的示例代码
Jan 07 Javascript
jquery中交替点击事件的实现代码
Feb 14 Javascript
js实现圆盘记速表
Aug 03 Javascript
JavaScript入门基础
Aug 12 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
Feb 19 Javascript
JSONP跨域请求
Mar 02 Javascript
JavaScript使用原型和原型链实现对象继承的方法详解
Apr 05 Javascript
es6学习之解构时应该注意的点
Aug 29 Javascript
详解创建自定义的Angular Schematics
Jun 06 Javascript
vue实现输入框自动跳转功能
May 20 Javascript
Vue路由切换页面不更新问题解决方案
Jul 10 Javascript
Vue.js仿Metronic高级表格(一)静态设计
Apr 17 #Javascript
react.js CMS 删除功能的实现方法
Apr 17 #Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
Apr 17 #Javascript
简单的JS控制button颜色随点击更改的实现方法
Apr 17 #Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
Apr 17 #jQuery
Vue分页组件实例代码
Apr 17 #Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 #Javascript
You might like
目录,文件操作详谈―PHP
2006/11/25 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
php利用curl获取远程图片实现方法
2015/10/26 Javascript
javascript回到顶部特效
2016/07/30 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
JavaScript闭包相关知识解析
2019/10/19 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
python实现简单的购物程序代码实例
2020/03/03 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
html5时钟实现代码
2010/10/22 HTML / CSS
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
客户代表自我评价范例
2013/09/24 职场文书
直接有效的自我评价
2014/01/11 职场文书
紧急迫降观后感
2015/06/15 职场文书
感恩老师主题班会
2015/08/12 职场文书
初三语文教学反思
2016/03/03 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
php png失真的原因及解决办法
2021/10/24 PHP
Python简易开发之制作计算器
2022/04/28 Python