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 相关文章推荐
分享一个常用的javascript静态类
Dec 31 Javascript
JS获取iframe中longdesc属性的方法
Apr 01 Javascript
关于数据与后端进行交流匹配(点亮星星)
Aug 03 Javascript
Javascript使用function创建类的两种方法(推荐)
Nov 19 Javascript
JS中判断null的方法分析
Nov 21 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
Jan 17 Javascript
webpack本地开发环境无法用IP访问的解决方法
Mar 20 Javascript
基于Vue实现可以拖拽的树形表格实例详解
Oct 18 Javascript
详解vue2.0 资源文件assets和static的区别
Nov 27 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
May 02 Javascript
NUXT SSR初级入门笔记(小结)
Dec 16 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
用Zend Encode编写开发PHP程序
2006/10/09 PHP
php中DOMElement操作xml文档实例演示
2013/03/26 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
php function用法如何递归及return和echo区别
2014/03/07 PHP
php中stream(流)的用法
2014/03/25 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
给Function做的OOP扩展
2009/05/07 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
JS的Document属性和方法小结
2013/09/17 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
使用async await 封装 axios的方法
2018/07/09 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
Python实现按逗号分隔列表的方法
2018/10/23 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
表决心的诗句大全
2014/03/11 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
2014年度个人工作总结
2014/11/07 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
2019个人半年工作总结
2019/06/21 职场文书
浅谈Java父子类加载顺序
2021/08/04 Java/Android