参照地址:https://www.jb51.net/article/60616.htm

首先获取公历节假日代码:

var basejieri={'0101':'元旦','0214':'情人节','0308':'妇女节','0312':'植树节','0401':'愚人节','0501':'劳动节','0504':'青年节','0512':'护士节','0601':'儿童节','0701':'建党节','0801':'建军节','0910':'教师节','1001':'国庆节','1111':'光棍节','1224':'平安夜','1225':'圣诞节'};//农历的月日
var parHoliday = ((month+1) > 9 ? (month+1) : "0"+(month+1)) + "" + (i > 9 ? i : "0" + i);if(basejieri.hasOwnProperty(parHoliday)) {aData = basejieri[parHoliday];}

调用方法:

//调用js方法,参数分别是公历年、月、日;返回农历日期或农历节假日
var aDate = getLunarCalendar(year, month, i);

公历转农历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);var nStr1 = new Array('日','一','二','三','四','五','六','七','八','九','十','十一','十二');
var nStr2 = new Array('初','十','廿','三十');
//农历节日
var lunarHoliday = {"0101":"春节","0115":"元宵节","0505":"端午节","0707":"七夕情人节","0715":"中元节","0815":"中秋节","0909":"重阳节","1208":"腊八节","1224":"小年"};
//节气
var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至");
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758);//判断y年的农历中那个月是闰月
function leapMonth(y) {var lm = lunarInfo[y - 1900] & 0xf;return (lm == 0xf ? 0 : lm);
}//返回农历y年m月的总天数
function monthDays(y, m) {return ((lunarInfo[y - 1900] & (0x10000 >> m)) ? 30 : 29);
}//返回农历y年闰月的天数
function leapDays(y) {if (leapMonth(y)) {return ((lunarInfo[y - 1899] & 0xf) == 0xf ? 30 : 29);}else{return (0);}
}//返回农历y年的总天数
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 农历年月日
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;
}//获取农历
function getLunarCalendar(year, month, day) {var lDate = new Lunar(new Date(year, month, day));var y = lDate.year;var m = lDate.month;var d = lDate.day;var lunar = "";var paraHoliday = (m > 9 ? m : "0"+m) + "" + (d > 9 ? d : "0" + d);//农历节日if(lunarHoliday.hasOwnProperty(paraHoliday)) {return lunarHoliday[paraHoliday];}if (m==12) {var theLastDay = lDate.isLeap ? leapDays(y): monthDays(y,m); //农历当月最後一天if(theLastDay == d) {return "除夕";}}//节气paraHoliday = ((month+1) > 9 ? (month+1) : "0"+(month+1)) + "" + (day > 9 ? day : "0" + day);for(var i = 0; i < sTermDateArr.length; i++) {if(paraHoliday == sTermDateArr[i]) {return solarTerm[i];}}if(d == 1) {lunar = nStr1[m] + '月';}else {lunar = cDay(d);}return lunar;
}//用中文显示农历的日期
function cDay(d){var s;switch (d) {case 10:s = '初十';break;case 20:s = '二十';break;case 30:s = '三十';break;default :s = nStr2[Math.floor(d/10)];s += nStr1[d%10];}return s;
}//获取y年的节气
var sTermDateArr = [];
function sTermDate(y) {sTermDateArr = [];var date = null;var stdateStr = "";for(var i = 0; i < solarTerm.length; i++) {date = new Date( ( 31556925974.7*(y-1900) + sTermInfo[i]*60000) + Date.UTC(1900,0,6,2,5) );stdateStr = ((date.getMonth()+1) > 9 ? (date.getMonth()+1) : "0"+(date.getMonth()+1)) + "" + (date.getUTCDate() > 9 ? date.getUTCDate() : "0" + date.getUTCDate());sTermDateArr.push(stdateStr);}
}

js 公历日期转农历带节假日相关推荐

  1. js公历日期转为农历日期

    方法: toLunar(solarYear, solarMonth, solarDay) {//定义全局变量var CalendarData = new Array(100);var madd = n ...

  2. js 根据公历日期 算出农历_根据公历日期计算农历年生肖及公历转换农历的方法...

    本帖最后由 wshcw 于 2011-12-6 23:23 编辑 有部分E友都知道,农历格式"[$-130000]e-m-d"转换出来的结果有好大一部分有误,那有没有其它转换办法呢 ...

  3. c语言万年历农历转公历,公历日期与农历日期的相互转换程序

    公历日期与农历日期的相互转换程序 //********************************** // 公历日期与农历日期的相互转换程序 // 公元1800年1月25日-2101年1月28日 ...

  4. html时间选择器时分秒,原生js日历日期控件带时分秒日期选择器

    特效描述:原生js日历日期 时分秒日期选择器.时分秒日期选择 代码结构 1. 引入JS 2. HTML代码 [注意事项] 一.请千万勿移动laydate中的目录结构,它们具有完整的依赖体系.使用时,只 ...

  5. java 获取阴历日期公历日期转农历日期或者阳历日期转阴历日期

    背景 项目中需要获取农历日期,展示在页面,不使用第三方工具类的情况下,直接使用原生的java api工具类开发 代码如下 package com.hidata.devops.paas;import j ...

  6. php实现农历公历日期的相互转换

    农历(Lunar calendar)和公历(Gregorian calendar)是两种不同的日历系统.公历是基于太阳和地球的运动来计算时间的,而农历是基于月亮的运动来计算时间的. 农历中的月份是根据 ...

  7. java 农历节日 转公历日期_公历农历互相转换的Java日历工具类

    /** * 工具类,实现公农历互转 */ public class LunarCalendar { /** * 支持转换的最小农历年份 */ public static final int MIN_Y ...

  8. ABAP 阳历日期与农历日期互转

    ABAP 阳历日期与农历日期互转 背景 项目简介 类工具方法简介 农历日期转公历日期 公历日期转农历日期 测试Demo 公历转农历 农历转公历 项目Github地址 代码 背景 SAP HCM需要一个 ...

  9. 根据公历日期获取到农历日期信息(带星座)(C#)

    直接上码,都有注释说明 using System; using System.Collections.Generic; using System.Globalization; using System ...

最新文章

  1. ADB连接小米手机模拟上下左右滑动实例演示
  2. ubuntu16.04分区
  3. 走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
  4. 编程之美系列之三——计算1的个数
  5. 【python】路径前添加 r表示不转义
  6. flink wordcount示例
  7. 进入Linux单用户模式
  8. chmod 777后还是无法写入
  9. 新浪微博学习的知识点
  10. Gauss-Jordan法求逆矩阵
  11. Android Multimedia框架总结(二十一)MediaCodec中创建到start过程(到jni部分)
  12. 深度学习网络训练技巧篇:神经网络初始化tricks---何凯明大神2018年新作(随机初始化网络)
  13. 感冒、咳嗽、发烧、腹泻、扁桃体炎是儿童常见病
  14. g_mass_storage: Unknown symbol fsg_common_set_sysfs (err 0)
  15. 元宇宙都市传说02:《头号玩家》的隐喻
  16. 《小鸡快跑》的成功故事
  17. 1.树莓派Pi3简介
  18. 苹果商城怎么调成中文_使用苹果手机时,你感觉最不舒服的地方有哪些?
  19. 基于AOP的优惠券发送异常哨兵监控
  20. 华为天才少年稚晖君自制硬萌机器人,开源 5 天,GitHub 收获 2900 星!

热门文章

  1. SEO优化收徒蜘蛛池是什么
  2. 女生戴蓝牙耳机什么颜色好看?适合女生的高颜值蓝牙耳机
  3. android通过adb设置以太网共享
  4. 【学习日记2023.4.25】之 前后端分离_前端工程化_Vue组件库Element_Vue路由_打包部署
  5. pip uninstall
  6. python Deformation Transfer for Triangle Meshes
  7. 【ES】1318- 这些 ES7-ES12 的知识点你都掌握了吗?
  8. 15K的前端应届毕业生,就因为掌握了这些知识点!(前端企业级开发必备)
  9. 人人商城 邀请人 成功购买会员卡之后返现
  10. AdSense 使用教程: 通过让 Google 在您的网站上投放广告,帮助您从中获利