方法:

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公历日期转为农历日期相关推荐

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

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

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

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

  3. Excel怎么把数字样式日期转为标准日期格式

    今天跟大家分享一下Excel怎么把数字样式日期转为标准日期格式 1.打开Excel文件 2.选择要处理的单元格区域 3.点击下图选项(Excel工具箱,百度即可了解详细下载安装信息,本文这里就不做详细 ...

  4. 【js】阳历换算农历日期(1900-2100)

    引言 前段时间仿做了一个win10的日历,其中涉及到阳历转换成农历的问题,当时顺手百度了一个js代码提供这个功能,但是不知道为什么其中有一段代码将2020年之后日期的屏蔽掉了,我将这个代码删除之后发现 ...

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

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

  6. 中文数字日期转为阿拉伯数字日期

    中文数字日期转换为阿拉伯数字日期的方法如下: 将中文数字替换为阿拉伯数字.具体地,把"零"."一"."二"."三".&q ...

  7. Js获取当前日期和农历日期

    today=new Date(); function initArray(){this.length=initArray.arguments.lengthfor(var i=0;i<this.l ...

  8. js 根据指定阳历日期转换为农历日期

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>lun ...

  9. [Excel知识技能] 将“假“日期转为“真“日期格式

    日期的本质是数字,标准格式的"真"日期能够和数字进行加减运算,也可以通过鼠标右键"设置单元格格式"来改变日期显示形式,但"假"日期格式无法通 ...

最新文章

  1. [转]单点登录原理与简单实现
  2. java 调内存_java内存设置
  3. Selenium3自动化测试——11. 下拉框处理
  4. 静态资源java 配置文件_java web 静态资源访问配置三种方式
  5. python的基本语法和语言_Python基本语法
  6. 【转】NuGet学习笔记(2)——使用图形化界面打包自己的类库
  7. 怎么使用java官方demo?
  8. 一张图学会数据库迁云最佳路径
  9. 增大mysql修改表空间_innodb系统表空间维护方法
  10. 三星S10背板设计已确定:画面甚是感人
  11. python给list添加元素_Python中给List添加元素的4种方法分享
  12. 用简单易懂的例子解释隐马尔可夫模型
  13. 计算机接口cad图,(有全套CAD图纸)USB接口插件弯曲模具设计.rar
  14. MD5以及SHA加密不在安全的分析
  15. LabVIEW 编程小技巧
  16. 【verilog】【Modelsim仿真】“XXX“already declared in this scope
  17. Fresher的完美文本
  18. 前端学习——HTML(二) 列表
  19. 服务器重装系统之浪潮服务器
  20. 北京小客车摇号数据的一点质疑

热门文章

  1. 录美妆视频用什么软件好?怎么录制高清画质?
  2. 【眇视万里一毫端】全志V853三核异构边缘AI视觉处理芯片全新发布
  3. 机器学习中常用的核函数
  4. 求质数算法的N种境界
  5. 为什么苹果6没有录屏_谁说苹果手机没有录屏功能的,要这样操作才能开启,非常实用!...
  6. 航测相关软件教材分享
  7. 嵌入式芯片概念梳理 - CPU、MCU、MP、DSP、FPGA、ASIC
  8. V-model的双向绑定原理
  9. Android楼梯清扫机器人上位控制系统设计
  10. Lattice库联合ModelSim仿真FIFO