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 = '';tmp += tgString.charAt((cYear - 4) % 10);tmp += dzString.charAt((cYear - 4) % 12);tmp += '(';tmp += sx.charAt((cYear - 4) % 12);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();}

调方法(this.toLunar(solarYear, solarMonth, solarDay))
注:solarYear年 solarMonth月solarDay日

js转换日期阳历转农历相关推荐

  1. 小程序获取农历,阳历转农历,计算属相

    代码 在utils.js中新建js,命名为calendar.js,粘贴入以下代码: /** 阳历转农历:* getLunarDate: getLunarDate* 返回值格式:yyyy-MM-DD* ...

  2. JavaScript之js-calendar-converter插件的使用、日历、日期、转换、阳历、阴历、公历、农历、calendar

    文章目录 前言 下载js-calendar-converter插件 插件介绍 查询属性表 获取的方法 转换的方法 设置的方法 微信小程序查看效果 日历选择案例 前言 在做算命项目时遇到公历和农历相互转 ...

  3. 日期转换,农历转阳历和阳历转农历

    农历转阳历和阳历转农历,参考网上代码进行修改,网上代码农历数据表有2处错误导致转换日期不对,我已经修改了,通过lunar-date-2.4.0已验证到1901~2050年结果是正确的 //date_u ...

  4. js阳历转农历调用方法

    js阴历阳历转换代码,js阳历转农历调用教程如下: 输入一个日期 计算结果:计算出对应的阴历或阳历 js实现代码: <!-- function CalConv(M){FIRSTYEAR = 19 ...

  5. js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

    js 中日期 转换成时间戳 例如2013-08-30 转换为时间戳 热心网友  2018-11-18 js字符串转化时间戳可以使用自带函数 Date(要转化的时间字符串)先转化为Date类型,之后再将 ...

  6. vue 使用js XLSX读取 excel 转换日期格式

    前言 大家好! 今天遇到了vue 使用js XLSX读取 excel 转换日期格式的问题,做个记录 问题 今天写excel文件上传时,遇到了时间格式没有正确转换的问题 解决方式 借用了 项目中读取 e ...

  7. vue.js 时间戳转换日期格式

    时间戳可以理解为过滤器的一种方式,日期格式的转换在项目中也经常遇到,今天我来总结项目中踩过的坑,以及解决方法. 时间戳转换日期格式有三种方法: 方式一 运行 cmd 执行 npm install mo ...

  8. 关于JS使用时间戳转换日期的原理

    自学JS前端的第n天,今天学习了pink老师JS课程中的时间戳转换日期的代码,一开始看着这段转换代码感觉有点懵,但是随后分析了一下,想明白了这段代码的原理(大佬勿喷,仅仅发表个人见解) d = par ...

  9. 如何用js将日期转换成时间戳

    一.日期转换成时间戳 js字符串转化成时间戳可以使用自带函数Date(要转化的时间字符串)先转化为Date类型,之后再将Date类型转化为时间戳类型,其中时间字符串有要求,形式必须是yyyy-MM-d ...

最新文章

  1. oracle直查和call哪个更快,让oracle跑的更快1读书笔记二
  2. winform窗体自由拖拽控件
  3. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Menu的Command)
  4. activemq控制面板里的NumberOfPendingMessages、MessagesEnqueued、MessagesDequeued含义
  5. java 中 if与while的区别
  6. java程序运行结果题_2016年关于Java编程与程序运行结果笔试题
  7. less linux命令,less 命令用法详解
  8. 终结者:HTTPS在Tomcat中的使用(三)——Java代码生成密钥库文件及其对应的安全证书
  9. 一键安装配置Redis详解
  10. 同时删除多个 Excel 文档空白行
  11. 下载centOS,下载各种linux版本的镜像,来这里!
  12. 特殊符号,emoji表情,四字节去除问题
  13. latex与word之间的各种转化方法
  14. 闽江学院计算机与控制工程学院在哪个校区,计算机与控制工程学院举行优秀校友分享会...
  15. 【求由正方形组成的图形的周长】C++实现
  16. iOS开发笔记 - 工具篇
  17. Cisco思科路由器配置IPsec,建立Site to Site项目实例
  18. 从毕业生到“造路人”:贵州城市职业学院大专毕业生的前行故事
  19. 每个人的生活都不容易,请无论如何选择宽容和理解,善待身边的每一个人
  20. bzoj3028 食物 (普通型生成函数)

热门文章

  1. 什么是白盒测试?什么是黑盒测试?两者的主要区别
  2. 那个三十岁没谈过恋爱的程序员
  3. 【计算几何】Delaunay 三角剖分原理与实现
  4. C语言mkfifo函数
  5. 一个SpringBoot问题就干趴下了?我却凭着这份PDF文档吊打面试官(Spring Boot知识点+详解)
  6. 各个大厂缺这号人!大家别瞎投简历!
  7. 第04课:学习:如何制定学习方案,获取进步捷径
  8. c语言程序中文件不存在是为什么,c语言 文件
  9. ssh: connect to host 192.168.101.34 port 22: Connection timed out
  10. make指定makefile文件编译