`
tianyalinfeng
  • 浏览: 442997 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

js版公历转农历

    博客分类:
  • Js
 
阅读更多

var lunarInfo=new Array(

0x4bd8,0x4ae0,0xa570,0x54d5,0xd260,0xd950,0x5554,0x56af,0x9ad0,0x55d2,

0x4ae0,0xa5b6,0xa4d0,0xd250,0xd255,0xb54f,0xd6a0,0xada2,0x95b0,0x4977,

0x497f,0xa4b0,0xb4b5,0x6a50,0x6d40,0xab54,0x2b6f,0x9570,0x52f2,0x4970,

0x6566,0xd4a0,0xea50,0x6a95,0x5adf,0x2b60,0x86e3,0x92ef,0xc8d7,0xc95f,

0xd4a0,0xd8a6,0xb55f,0x56a0,0xa5b4,0x25df,0x92d0,0xd2b2,0xa950,0xb557,

0x6ca0,0xb550,0x5355,0x4daf,0xa5b0,0x4573,0x52bf,0xa9a8,0xe950,0x6aa0,

0xaea6,0xab50,0x4b60,0xaae4,0xa570,0x5260,0xf263,0xd950,0x5b57,0x56a0,

0x96d0,0x4dd5,0x4ad0,0xa4d0,0xd4d4,0xd250,0xd558,0xb540,0xb6a0,0x95a6,

0x95bf,0x49b0,0xa974,0xa4b0,0xb27a,0x6a50,0x6d40,0xaf46,0xab60,0x9570,

0x4af5,0x4970,0x64b0,0x74a3,0xea50,0x6b58,0x5ac0,0xab60,0x96d5,0x92e0,

0xc960,0xd954,0xd4a0,0xda50,0x7552,0x56a0,0xabb7,0x25d0,0x92d0,0xcab5,

0xa950,0xb4a0,0xbaa4,0xad50,0x55d9,0x4ba0,0xa5b0,0x5176,0x52bf,0xa930,

0x7954,0x6aa0,0xad50,0x5b52,0x4b60,0xa6e6,0xa4e0,0xd260,0xea65,0xd530,

0x5aa0,0x76a3,0x96d0,0x4afb,0x4ad0,0xa4d0,0xd0b6,0xd25f,0xd520,0xdd45,

0xb5a0,0x56d0,0x55b2,0x49b0,0xa577,0xa4b0,0xaa50,0xb255,0x6d2f,0xada0,

0x4b63,0x937f,0x49f8,0x4970,0x64b0,0x68a6,0xea5f,0x6b20,0xa6c4,0xaaef,

0x92e0,0xd2e3,0xc960,0xd557,0xd4a0,0xda50,0x5d55,0x56a0,0xa6d0,0x55d4,

0x52d0,0xa9b8,0xa950,0xb4a0,0xb6a6,0xad50,0x55a0,0xaba4,0xa5b0,0x52b0,

0xb273,0x6930,0x7337,0x6aa0,0xad50,0x4b55,0x4b6f,0xa570,0x54e4,0xd260,

0xe968,0xd520,0xdaa0,0x6aa6,0x56df,0x4ae0,0xa9d4,0xa4d0,0xd150,0xf252,

0xd520);

 

function leapMonth(y) {

 var lm = lunarInfo[y-1900] & 0xf;

 return(lm==0xf?0:lm);

}

 

function monthDays(y,m) {

 return( (lunarInfo[y-1900] & (0x10000>>m))? 30: 29 );

}

 

function leapDays(y) {

 if(leapMonth(y)) return( (lunarInfo[y-1899]&0xf)==0xf? 30: 29);

 else return(0);

}

 

//return days of lunar year

function lYearDays(y) {

 var i, sum = 348;

 for(i=0x8000; i>0x8; i>>=1) sum += (lunarInfo[y-1900] & i)? 1: 0;

 return(sum+leapDays(y));

}

 

//calcute lunar date  .year .month .day .isLeap

function Lunar(objDate) {

   var i, leap=0, temp=0;

   var offset   = (Date.UTC(objDate.getFullYear(),objDate.getMonth(),objDate.getDate()) - Date.UTC(1900,0,31))/86400000;

   for(i=1900; i<2100 && offset>0; i++) { temp=lYearDays(i); offset-=temp; }

   if(offset<0) { offset+=temp; i--; }

   this.year = i;

   leap = leapMonth(i); //闰哪个月

   this.isLeap = false;

   for(i=1; i<13 && offset>0; i++) {

      //闰月

      if(leap>0 && i==(leap+1) && this.isLeap==false)

         { --i; this.isLeap = true; temp = leapDays(this.year); }

      else

         { temp = monthDays(this.year, i); }

      //解除闰月

      if(this.isLeap==true && i==(leap+1)) this.isLeap = false;

      offset -= temp;

   }

   if(offset==0 && leap>0 && i==leap+1)

      if(this.isLeap)

         { this.isLeap = false; }

      else

         { this.isLeap = true; --i; }

   if(offset<0){ offset += temp; --i; }

   this.month = i;

   this.day = offset + 1;

}

 

var lDate = new Lunar(new Date());

var y = lDate.year;

var m = lDate.month;

var d = lDate.day;

alert(y+"-"+m+"-"+d);

分享到:
评论

相关推荐

    calendar-converter.js_JS版公历转农历插件

    该组件是在网络上现有JS版公历转农历插件基础上开发。

    js农历公历日期相互转换函数javascript日期转换

    调用简单,下拉传一日期加类型即可转换日期的类型,如: CalConvert(new Date(2010,3,19), false) //农历转换为公历 CalConvert(new Date(2010,3,19), true)//公历转换成农历

    公历转换农历的算法(JavaScript)

    公历转换农历的算法(JavaScript) 公历转换农历的算法是指将公历日期转换为农历日期的过程。公历是国际通用的日期系统,而农历则是中国传统的日期系统。农历的日期系统与公历不同,它的日期是根据月亮的周期变化而...

    支持各种编程语言公历(阳历) 农历(阴历)转换

    公历(阳历) 农历(阴历)转换,支持时间段从 1900-2100 如果需要更长的时间段,利用 generate.htm 生成的数据即可。 支持各种编程语言 C#,java,Objective-C,php,Python,javascript(nodejs),C/C++,ruby,swift,golang 等...

    js 公历农历互转

    通过以上介绍,我们可以看出,`calendar.js`中的`Calendar`类应该实现了JavaScript环境下公历与农历的相互转换,这对于开发涉及日期的项目,尤其是中国市场的项目,是非常实用的功能。开发者可以根据实际需求对这个...

    js实现阳历到阴历的转换

    js实现阳历到阴历的转换.

    MATLAB实现阳历、阴历与干支历的日期转换

    在MATLAB编程环境中,我们可以创建一个名为`clsdate.m`的函数来实现阳历、阴历和干支历之间的转换。这个功能强大的工具对于研究中国传统文化、天文历法或者进行相关数据分析都极其有用。以下是对这个`clsdate.m`函数...

    将阳历转换为阴历的JavaScript代码

    改JavaScript控件可以将公历的时间计算转换为阳历

    带公历和农历相互转换的生日选择器

    这种情况下选择生日就有点牵强,本人最近在做的一个项目中需要用户输入自己的生日,既可选择公历,也可选择农历,经过研究做出了这种生日选择器,可以任意切换公历和农历,公历农历相互转换的算法90%是本人原创,...

    PHP实现公历和农历之间的转换

    PHP实现公历和农历之间的转换 一、开发环境 1、环境搭建:Windows 8+Apache 2.4.18+MySQL 5.7.11+PHP 7.1.0 。 2、文本编辑器:Sublime Text3。 二、主要技术 本实验主要使用JS类库和公历转农历的类库实现。

    Flex公历转农历算法

    2. **农历算法**:农历,也称为阴历,是一种根据月亮的相位来计算日期的系统,与公历(阳历)主要依据太阳运行周期不同。农历算法比较复杂,涉及到月相、闰月和节气等因素。公历到农历的转换通常包括以下几个步骤:...

    阳历阴历的转换

    阳历转阴历需要考虑以下几点: 1. 年份转换:阳历的年份需要找到对应的阴历年份。由于闰年的存在,每19个阳历年会有7个闰年,阴历与阳历的对应关系并非简单的一一对应。 2. 月份转换:阳历月份转换为阴历,需计算出...

    Web前端农历转换,阴历转换

    为解决Web前端的农历转换,现将相关的前端转换代码共享给大家,JavaScript公历转换、农历转换、阴历转换、阳历转换

    js_阳历日期转农历日期_日期转化周几等

    1 返回农历year年中哪个月是闰月,没有闰月返回0 2 返回农历year年闰月的天数(如果没有闰月则返回0) 3 返回农历year年的总天数 4 返回农历year年month月的天数 ...10 阳历日期转农历日期 11 日期转化周几

    VUE时间戳转农历js文件

    用户可下载当前文件之后,可以获取时间戳数据传进JS文件中的函数,函数处理完时间戳之后会返回当前对应的事件农历日期(中文形式),VUE时间戳转农历js文件

    微信小程序农历阳历日期选择器选中日期同时获取对应农/阳历日期

    而农历,是中国传统的历法,结合了阴历(月亮圆缺)和阳历(太阳回归年)的特点,因此农历的月份和阳历并不完全对应。 在微信小程序中,我们可以利用其提供的API来实现这一功能。首先,我们要创建两个日期选择器,...

    JavaScript实现公历转农历功能示例

    本文实例讲述了JavaScript实现公历转农历功能。分享给大家供大家参考,具体如下: 完整代码(该源码使用在线工具http://tools.jb51.net/code/js进行了格式化处理,以便于读者阅读): &lt;!DOCTYPE ...

    js公历日期转农历日期.txt

    ### js公历日期转农历日期知识点详解 #### 1. 背景介绍 在日常生活中,农历(阴历)与公历(阳历)之间的转换对于节日庆祝、传统活动等有着重要的意义。例如,春节、中秋节等中国传统节日都是根据农历来确定日期的...

    html_one954_javascript_阳历农历互转_

    在给定的项目“html_one954_javascript_阳历农历互转_”中,我们可以深入理解如何使用JavaScript实现这个功能。 首先,`index.html`是网页的主文件,它通常包含HTML结构,用于定义网页的布局和内容。在这个项目中,...

    公历阴历互转

    公历与农历互转。阴历转化成公历。公历转化成阴历。

Global site tag (gtag.js) - Google Analytics