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 相关文章推荐
showModelessDialog()使用详解
Sep 07 Javascript
Prototype使用指南之enumerable.js
Jan 10 Javascript
javascript自执行函数之伪命名空间封装法
Dec 25 Javascript
得到jQuery detach()后节点中的某个值实现代码
Feb 05 Javascript
jquery实现勾选复选框触发事件给input赋值
Feb 01 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
学习使用bootstrap基本控件(table、form、button)
Apr 12 Javascript
vue基于Vue2.0和高德地图的地图组件实例
Apr 28 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
Sep 28 Javascript
浅谈Node.js爬虫之网页请求模块
Jan 11 Javascript
vue中的面包屑导航组件实例代码
Jul 01 Javascript
EXTJS7实现点击拖拉选择文本
Dec 17 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中的fopen()函数用打开文件模式说明
2013/06/20 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
javascript中call和apply方法浅谈
2013/09/27 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
JS中数据结构之栈
2019/01/01 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
python列表与元组详解实例
2013/11/01 Python
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
Python获取当前路径实现代码
2017/05/08 Python
python集合删除多种方法详解
2020/02/10 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
美国时尚女装在线:Missguided
2016/12/03 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
学生个人求职自荐信格式
2013/09/23 职场文书
体育学院毕业生自荐信
2013/11/03 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
2014年采购员工作总结
2014/11/18 职场文书
入党自荐书范文
2015/03/05 职场文书
党课主持词大全
2015/06/30 职场文书
spring cloud gateway中如何读取请求参数
2021/07/15 Java/Android