很全的显示阴历(农历)日期的js代码

更新时间:2009年01月01日 15:33:05   作者:

经下面的代码保存在js中调用即可。

function RunGLNL(){

var today=new Date();

var d=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");

var DDDD=(today.getYear()<100 ?

today.getYear()+1900:today.getYear())+"年"+(today.getMonth()+1)+"月"+today.getDate()+"日";

DDDD = DDDD + " " + d[today.getDay()];

DDDD = DDDD+ " " + (CnDateofDateStr(today));

//DDDD = DDDD+ " " + SolarTerm(today);

document.write(DDDD);

}

function DaysNumberofDate(DateGL){

return parseInt((Date.parse(DateGL)-Date.parse(DateGL.getYear()+"/1/1"))/86400000)+1;

}

function CnDateofDate(DateGL){

var CnData=new Array(

0x16,0x2a,0xda,0x00,0x83,0x49,0xb6,0x05,0x0e,0x64,0xbb,0x00,0x19,0xb2,0x5b,0x00,

0x87,0x6a,0x57,0x04,0x12,0x75,0x2b,0x00,0x1d,0xb6,0x95,0x00,0x8a,0xad,0x55,0x02,

0x15,0x55,0xaa,0x00,0x82,0x55,0x6c,0x07,0x0d,0xc9,0x76,0x00,0x17,0x64,0xb7,0x00,

0x86,0xe4,0xae,0x05,0x11,0xea,0x56,0x00,0x1b,0x6d,0x2a,0x00,0x88,0x5a,0xaa,0x04,

0x14,0xad,0x55,0x00,0x81,0xaa,0xd5,0x09,0x0b,0x52,0xea,0x00,0x16,0xa9,0x6d,0x00,

0x84,0xa9,0x5d,0x06,0x0f,0xd4,0xae,0x00,0x1a,0xea,0x4d,0x00,0x87,0xba,0x55,0x04

);

var CnMonth=new Array();

var CnMonthDays=new Array();

var CnBeginDay;

var LeapMonth;

var Bytes=new Array();

var I;

var CnMonthData;

var DaysCount;

var CnDaysCount;

var ResultMonth;

var ResultDay;

var yyyy=DateGL.getYear();

var mm=DateGL.getMonth()+1;

var dd=DateGL.getDate();

if(yyyy<100) yyyy+=1900;

if ((yyyy < 1997) || (yyyy > 2020)){

return 0;

}

Bytes[0] = CnData[(yyyy - 1997) * 4];

Bytes[1] = CnData[(yyyy - 1997) * 4 + 1];

Bytes[2] = CnData[(yyyy - 1997) * 4 + 2];

Bytes[3] = CnData[(yyyy - 1997) * 4 + 3];

if ((Bytes[0] & 0x80) != 0) {CnMonth[0] = 12;}

else {CnMonth[0] = 11;}

CnBeginDay = (Bytes[0] & 0x7f);

CnMonthData = Bytes[1];

CnMonthData = CnMonthData << 8;

CnMonthData = CnMonthData | Bytes[2];

LeapMonth = Bytes[3];

for (I=15;I>=0;I--){

CnMonthDays[15 - I] = 29;

if (((1 << I) & CnMonthData) != 0 ){

CnMonthDays[15 - I]++;}

if (CnMonth[15 - I] == LeapMonth ){

CnMonth[15 - I + 1] = - LeapMonth;}

else{

if (CnMonth[15 - I] < 0 ){CnMonth[15 - I + 1] = - CnMonth[15 - I] + 1;}

else {CnMonth[15 - I + 1] = CnMonth[15 - I] + 1;}

if (CnMonth[15 - I + 1] > 12 ){ CnMonth[15 - I + 1] = 1;}

}

}

DaysCount = DaysNumberofDate(DateGL) - 1;

if (DaysCount <= (CnMonthDays[0] - CnBeginDay)){

if ((yyyy > 1901) && (CnDateofDate(new Date((yyyy - 1)+"/12/31")) < 0)){

ResultMonth = - CnMonth[0];}

else {ResultMonth = CnMonth[0];}

ResultDay = CnBeginDay + DaysCount;

}

else{

CnDaysCount = CnMonthDays[0] - CnBeginDay;

I = 1;

while ((CnDaysCount < DaysCount) && (CnDaysCount + CnMonthDays[I] < DaysCount)){

CnDaysCount+= CnMonthDays[I];

I++;

}

ResultMonth = CnMonth[I];

ResultDay = DaysCount - CnDaysCount;

}

if (ResultMonth > 0){

return ResultMonth * 100 + ResultDay;}

else{return ResultMonth * 100 - ResultDay;}

}

function CnYearofDate(DateGL){

var YYYY=DateGL.getYear();

var MM=DateGL.getMonth()+1;

var CnMM=parseInt(Math.abs(CnDateofDate(DateGL))/100);

if(YYYY<100) YYYY+=1900;

if(CnMM>MM) YYYY--;

YYYY-=1864;

return CnEra(YYYY)+"年";

}

function CnMonthofDate(DateGL){

var CnMonthStr=new Array("零","正","二","三","四","五","六","七","八","九","十","十一","腊");

var Month;

Month = parseInt(CnDateofDate(DateGL)/100);

if (Month < 0){return "闰" + CnMonthStr[-Month] + "月";}

else{return CnMonthStr[Month] + "月";}

}

function CnDayofDate(DateGL){

var CnDayStr=new Array("零",

"初一", "初二", "初三", "初四", "初五",

"初六", "初七", "初八", "初九", "初十",

"十一", "十二", "十三", "十四", "十五",

"十六", "十七", "十八", "十九", "二十",

"廿一", "廿二", "廿三", "廿四", "廿五",

"廿六", "廿七", "廿八", "廿九", "三十");

var Day;

Day = (Math.abs(CnDateofDate(DateGL)))%100;

return CnDayStr[Day];

}

function DaysNumberofMonth(DateGL){

var MM1=DateGL.getYear();

MM1<100 ? MM1+=1900:MM1;

var MM2=MM1;

MM1+="/"+(DateGL.getMonth()+1);

MM2+="/"+(DateGL.getMonth()+2);

MM1+="/1";

MM2+="/1";

return parseInt((Date.parse(MM2)-Date.parse(MM1))/86400000);

}

function CnEra(YYYY){

var Tiangan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");

//var Dizhi=new Array("子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)","巳(蛇)",

//"午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");

var Dizhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");

return Tiangan[YYYY%10]+Dizhi[YYYY%12];

}

function CnDateofDateStr(DateGL){

if(CnMonthofDate(DateGL)=="零月") return " 请调整您的计算机日期!";

else return "农历:"+CnYearofDate(DateGL)+ " " + CnMonthofDate(DateGL) + CnDayofDate(DateGL);

}

function SolarTerm(DateGL){

var SolarTermStr=new Array(

"小寒","大寒","立春","雨水","惊蛰","春分",

"清明","谷雨","立夏","小满","芒种","夏至",

"小暑","大暑","立秋","处暑","白露","秋分",

"寒露","霜降","立冬","小雪","大雪","冬至");

var DifferenceInMonth=new Array(

1272060,1275495,1281180,1289445,1299225,1310355,

1321560,1333035,1342770,1350855,1356420,1359045,

1358580,1355055,1348695,1340040,1329630,1318455,

1306935,1297380,1286865,1277730,1274550,1271556);

var DifferenceInYear=31556926;

var BeginTime=new Date(1901/1/1);

BeginTime.setTime(947120460000);

for(;DateGL.getYear()

BeginTime.setTime(BeginTime.getTime()-DifferenceInYear*1000);

}

for(;DateGL.getYear()>BeginTime.getYear();){

BeginTime.setTime(BeginTime.getTime()+DifferenceInYear*1000);

}

for(var M=0;DateGL.getMonth()>BeginTime.getMonth();M++){

BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000);

}

if(DateGL.getDate()>BeginTime.getDate()){

BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000);

M++;

}

if(DateGL.getDate()>BeginTime.getDate()){

BeginTime.setTime(BeginTime.getTime()+DifferenceInMonth[M]*1000);

M==23?M=0:M++;

}

var JQ;

if(DateGL.getDate()==BeginTime.getDate()){

JQ="  今天是"+SolarTermStr[M] + "";

}

else if(DateGL.getDate()==BeginTime.getDate()-1){

JQ="  明天是"+SolarTermStr[M] + "";

}

else if(DateGL.getDate()==BeginTime.getDate()-2){

JQ="  后天是"+SolarTermStr[M] + "";

}

else{

JQ=" "

if(DateGL.getMonth()==BeginTime.getMonth()){

JQ+="  本月";

}

else{

JQ+="  下月";

}

JQ+=BeginTime.getDate()+"日"+""+SolarTermStr[M]+"";

}

return JQ;

}

function CAL()

{}

RunGLNL();

相关文章

正宗的日历(含农历)...2006-09-09

因为工作需要弄一个JS处理时间的函数,参考网上的一些东东,根据实际需要写了一个,记录在这里,方便需要的朋友2012-05-05

日期函数,没必要多说了吧?就是一般的日期比较,日期相加,获取当前time2010-10-10

同一页面多个商品倒计时JS 基于面向对象的javascript实现代码,需要的朋友可以参考下2012-02-02

无限扩展的年份select...2006-08-08

js中得到当前年份做法是var dayObj=new Date(); dayObj.getYear()来得到年份,我前面写过这样会出现浏览器的兼容性的问题,就是在IE中能得到我们想要的结果但是在FF中就不行了,和我们要的结果相差1900年2014-07-07

非常酷的有农历的日历挂历!...2006-07-07

液晶效果的奥运倒计时代码(带图片)2008-07-07

利用Js在一个文本框内设置当前的时间,两个button,一个点一下加一天,一个点一下减一天。2010-03-03

JavaScript Date对象 日期获取函数必备,需要使用js得到当前日期的朋友可以参考下。2010-12-12

最新评论

带农历日期的html代码,很全的显示阴历(农历)日期的js代码相关推荐

  1. html中只显示农历的完整代码,很全的显示阴历(农历)日期的js代码

    很全的显示阴历(农历)日期的js代码 发布于 2016-12-17 14:15:20 | 248 次阅读 | 评论: 0 | 来源: 网友投递 JavaScript客户端脚本语言Javascript ...

  2. 显示农历的html代码,很全的显示阴历(农历)日期的js代码

    function RunGLNL(){ var today=new Date(); var d=new Array("星期日","星期一","星期二& ...

  3. js如何运行python代码_手把手教你如何使用Python执行js代码

    前言 各位小伙伴,大家好,这次咱们来说一下关于爬虫方向的一个知识,Python如何执行js,快来看看吧!!! 为什么要引出Python执行js这个问题? 都说术业有专攻,每个语言也都有自己的长处和短处 ...

  4. 网页会屏蔽php代码,网站屏蔽360浏览器访问php源码js代码

    靠做流氓软件起家的360董事长周鸿祎早就名声在外,做人不能太周鸿祎!已经成为互联网一句口头禅! 周鸿祎可谓树敌无数,从3721时期与CNNIC的宿怨.离开雅虎后与阿里巴巴的官司,到杀毒软件领域与金山. ...

  5. 分享实录 | 深度学习技术红利下的代码补全

    简介: 在软件研发过程中,"代码补全"至关重要,它可以有效的提升开发效率.减少拼写错误和输入代码量.本期<云效说码>分享邀请斑马网络技术专家旭伦分享了<技术红利下 ...

  6. oracle 取农历函数,获取阴历(农历)和当前日期的js代码_javascript技巧

    本文为大家分享了一段js显示阴历(农历)和当前日期的关键性代码,供大家参考,具体内容如下 var CalendarData=new Array(100); var madd=new Array(12) ...

  7. php 获取当前时间的农历,获取阴历(农历)和当前日期的js代码_javascript技巧

    本文为大家分享了一段js显示阴历(农历)和当前日期的关键性代码,供大家参考,具体内容如下 var CalendarData=new Array(100); var madd=new Array(12) ...

  8. 你知道吗?JS代码混淆加密,很有用!

    JS代码为什么要进行混淆加密? 因为:JS代码是明文. JS是种开放源码的编程语言, 无论是前端浏览器中的JS代码,还是在后端使用,如nodejs,js代码都是明文, 明文代码,他人可以随意查看.复制 ...

  9. JavaScript——关于JavaScript、在HTML中嵌入JS代码的三种方式、变量

    文章目录 JavaScript 01 关于JavaScript 1.1 JS的发展历史 1.2 JS的特性 1.3 JS的组成 1.4 JSP和JS的区别 02 在HTML中嵌入JS代码的三种方式 2 ...

  10. 一些实用的JS代码。

    按扭特效: 1.全屏显示 说明:真正的全屏显示,只能用ALT+F4关闭 代码:<input type="BUTTON" name="FullScreen" ...

最新文章

  1. vue中动态渲染组件
  2. 079_html5内联SVG
  3. NuGet 发布类库,依赖项的问题
  4. ASP.NET Core 十种方式扩展你的 Views
  5. config.php开启redis,微擎如何开启redis,redis开启方法详解
  6. [KISSY5系列]淘宝全终端框架 KISSY 5--从零开始使用
  7. (88)FPGA二分频设计,面试必问(十二)(第18天)
  8. 【Java】springboot 的学习笔记 的第一天
  9. 《机电传动控制》学习笔记-07
  10. 浅谈RSTP的快速收敛机制 P/A机制
  11. latex怎么打区间_涨出天际的安阳房价,这个月怎么样了?
  12. Java 完全自学手册,从外包到大厂,再到年薪 100 万技术大佬都靠它
  13. 什么是ARM开发板及其硬件特性介绍
  14. 百度地图 变黑问题 解决方法
  15. 数字取证wireshark流量分析
  16. Android 选择图片、上传图片之PictureSelector
  17. XP IIS下配置.net的问题总结与简单解决方法
  18. Parallels Desktop 12上win7复制键无效
  19. 【OBS】VS调试启动exe的环境设置
  20. android 手机 apk安装失败对应码

热门文章

  1. 校园一卡通管理信息系统的设计与实现(asp.net)
  2. 自动对焦模式与af区域模式_什么是自动对焦,不同模式意味着什么?
  3. MAC OS修改hosts
  4. 谷歌SEO优化排名做法详解,看这篇就都懂了
  5. python中polyfit 之poly1d与polyval的含义
  6. 高德地图GPS经纬度转高德经纬度
  7. python电商项目介绍_django打造电商项目
  8. 正则表达式最好的书籍_正则表达式的最佳做法
  9. 银行热衷拿区块链专利 背后有何意图
  10. html视频播放错误怎么办,如何解决播放视频错误代码0xc00d36c4