js公历日期转为农历日期
方法:
toLunar(solarYear, solarMonth, solarDay) {//定义全局变量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 = "";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;}solarMonth = parseInt(solarMonth) > 0 ? solarMonth - 1 : 11;e2c(solarYear, solarMonth, solarDay);return GetcDateString();}
调用方式:
toLunar(2019 8, 26);
js公历日期转为农历日期相关推荐
- c语言万年历农历转公历,公历日期与农历日期的相互转换程序
公历日期与农历日期的相互转换程序 //********************************** // 公历日期与农历日期的相互转换程序 // 公元1800年1月25日-2101年1月28日 ...
- ABAP 阳历日期与农历日期互转
ABAP 阳历日期与农历日期互转 背景 项目简介 类工具方法简介 农历日期转公历日期 公历日期转农历日期 测试Demo 公历转农历 农历转公历 项目Github地址 代码 背景 SAP HCM需要一个 ...
- Excel怎么把数字样式日期转为标准日期格式
今天跟大家分享一下Excel怎么把数字样式日期转为标准日期格式 1.打开Excel文件 2.选择要处理的单元格区域 3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细 ...
- 【js】阳历换算农历日期(1900-2100)
引言 前段时间仿做了一个win10的日历,其中涉及到阳历转换成农历的问题,当时顺手百度了一个js代码提供这个功能,但是不知道为什么其中有一段代码将2020年之后日期的屏蔽掉了,我将这个代码删除之后发现 ...
- java 获取阴历日期公历日期转农历日期或者阳历日期转阴历日期
背景 项目中需要获取农历日期,展示在页面,不使用第三方工具类的情况下,直接使用原生的java api工具类开发 代码如下 package com.hidata.devops.paas;import j ...
- 中文数字日期转为阿拉伯数字日期
中文数字日期转换为阿拉伯数字日期的方法如下: 将中文数字替换为阿拉伯数字.具体地,把"零"."一"."二"."三".&q ...
- Js获取当前日期和农历日期
today=new Date(); function initArray(){this.length=initArray.arguments.lengthfor(var i=0;i<this.l ...
- js 根据指定阳历日期转换为农历日期
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title>lun ...
- [Excel知识技能] 将“假“日期转为“真“日期格式
日期的本质是数字,标准格式的"真"日期能够和数字进行加减运算,也可以通过鼠标右键"设置单元格格式"来改变日期显示形式,但"假"日期格式无法通 ...
最新文章
- [转]单点登录原理与简单实现
- java 调内存_java内存设置
- Selenium3自动化测试——11. 下拉框处理
- 静态资源java 配置文件_java web 静态资源访问配置三种方式
- python的基本语法和语言_Python基本语法
- 【转】NuGet学习笔记(2)——使用图形化界面打包自己的类库
- 怎么使用java官方demo?
- 一张图学会数据库迁云最佳路径
- 增大mysql修改表空间_innodb系统表空间维护方法
- 三星S10背板设计已确定:画面甚是感人
- python给list添加元素_Python中给List添加元素的4种方法分享
- 用简单易懂的例子解释隐马尔可夫模型
- 计算机接口cad图,(有全套CAD图纸)USB接口插件弯曲模具设计.rar
- MD5以及SHA加密不在安全的分析
- LabVIEW 编程小技巧
- 【verilog】【Modelsim仿真】“XXX“already declared in this scope
- Fresher的完美文本
- 前端学习——HTML(二) 列表
- 服务器重装系统之浪潮服务器
- 北京小客车摇号数据的一点质疑