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 相关文章推荐
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
Apr 27 Javascript
jquery给图片添加鼠标经过时的边框效果
Nov 12 Javascript
学习JavaScript设计模式(策略模式)
Nov 26 Javascript
JavaScript深度复制(deep clone)的实现方法
Feb 19 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
May 07 Javascript
基于jQuery ligerUI实现分页样式
Sep 18 Javascript
如何实现星星评价(jquery.raty.js插件)
Dec 21 Javascript
JS实现的简易拖放效果示例
Dec 29 Javascript
Angular实现响应式表单
Aug 04 Javascript
浅谈Vue响应式(数组变异方法)
May 07 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
Sep 14 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
Aug 04 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
截获网站title标签之家内容的例子
2006/10/09 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
php 安全过滤函数代码
2011/05/07 PHP
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php上传图片类及用法示例
2016/05/11 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
2011/10/12 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
2014/04/12 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
[03:12]完美世界DOTA2联赛PWL DAY6集锦
2020/11/05 DOTA
Python中type的构造函数参数含义说明
2015/06/21 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
基于python绘制科赫雪花
2018/06/22 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
Python对接 xray 和微信实现自动告警
2019/09/17 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
浅析python中while循环和for循环
2019/11/19 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
技校个人求职信范文
2014/01/25 职场文书
森林防火标语
2014/06/23 职场文书
2016春节家属慰问信
2015/03/25 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
一文搞懂php的垃圾回收机制
2021/06/18 PHP
关于JavaScript轮播图的实现
2021/11/20 Javascript