/*农历部分*/

var lunar = {
            tg: '甲乙丙丁戊己庚辛壬癸',
            dz: '子丑寅卯辰巳午未申酉戌亥',
            number: '一二三四五六七八九十',
            year: '鼠牛虎兔龙蛇马羊猴鸡狗猪',
            month: '正二三四五六七八九十冬腊',
            monthadd: [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],
            calendar: [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]
        }

function getLunarDate(date) {
            var year, month, day;
            if (!date) {
                date = new Date(), year = date.getFullYear(), month = date.getMonth(), day = date.getDate();
            } else {
                date = date.split('-'), year = parseInt(date[0]), month = date[1] - 1, day = parseInt(date[2]);
            }

if (year < 1921 || year > 2020) {
                return {}
            }

var total, m, n, k, bit, lunarYear, lunarMonth, lunarDay;
            var isEnd = false;
            var tmp = year;
            if (tmp < 1900) {
                tmp += 1900;
            }
            total = (tmp - 1921) * 365 + Math.floor((tmp - 1921) / 4) + lunar.monthadd[month] + day - 38;
            if (year % 4 == 0 && month > 1) {
                total++;
            }
            for (m = 0; ; m++) {
                k = (lunar.calendar[m] < 0xfff) ? 11 : 12;
                for (n = k; n >= 0; n--) {
                    bit = (lunar.calendar[m] >> n) & 1;
                    if (total <= 29 + bit) {
                        isEnd = true;
                        break;
                    }
                    total = total - 29 - bit;
                }
                if (isEnd) break;
            }
            lunarYear = 1921 + m;
            lunarMonth = k - n + 1;
            lunarDay = total;
            if (k == 12) {
                if (lunarMonth == Math.floor(lunar.calendar[m] / 0x10000) + 1) {
                    lunarMonth = 1 - lunarMonth;
                }
                if (lunarMonth > Math.floor(lunar.calendar[m] / 0x10000) + 1) {
                    lunarMonth--;
                }
            }

return {
                lunarYear: lunarYear,
                lunarMonth: lunarMonth,
                lunarDay: lunarDay,
            };
        }

function getLunarDateString(lunarDate) {
            if (!lunarDate.lunarDay) return;
            var data = {},
                lunarYear = lunarDate.lunarYear,
                lunarMonth = lunarDate.lunarMonth,
                lunarDay = lunarDate.lunarDay;

data.tg = lunar.tg.charAt((lunarYear - 4) % 10);
            data.dz = lunar.dz.charAt((lunarYear - 4) % 12);
            data.year = lunar.year.charAt((lunarYear - 4) % 12);
            data.month = lunarMonth < 1 ? '(闰)' + lunar.month.charAt(-lunarMonth - 1) : lunar.month.charAt(lunarMonth - 1);

data.day = (lunarDay < 11) ? "初" : ((lunarDay < 20) ? "十" : ((lunarDay < 30) ? "廿" : "三十"));
            if (lunarDay % 10 != 0 || lunarDay == 10) {
                data.day += lunar.number.charAt((lunarDay - 1) % 10);
            }
            return data;
        }

调用方法如下:

var lunarDate = getLunarDate(birthday);
            var lunarDateString = getLunarDateString(lunarDate);
            if (lunarDateString != undefined) {
                jQuery("#<%=ltlnl.ClientID%>").text(lunarDateString.tg + lunarDateString.dz + "年" + lunarDateString.month + "月" + lunarDateString.day);
            }

根据出生日期获取农历信息相关推荐

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

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

  2. 根据身份证号获取相关信息(籍贯、性别、出生日期...)

    根据身份证号获取相关信息(籍贯.性别.出生日期-) 首先我的只是个demo,身份证号也是写死的.仅供参考! 通过访问其他HTTP接口,将身份证号当作参数.调用接口返回相关信息 效果展示: **接口地址 ...

  3. 免费节假日API 更新新功能了 新增农历信息返回

    感谢大家对免费节假日API的支持.最近看了别家的api于是增加了一些新功能即获取日期的农历信息. 这个新功能还处于测试阶段如有问题欢迎反馈 检查一个日期是详细信息 https://tool.bitef ...

  4. 身份证号可获取的信息

    身份证号可获取的信息 居民初次登记户籍所在地.出生日期.性别 公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序 ...

  5. 通过微信OCR识别获取身份证信息

    文档设计到的参考链接地址文档设计到的参考链接地址: 微信官方文档ocr.idcard 微信OCR识别购买地址 业务背景 提取小程序端用户上传的身份证图片上面的信息,存到数据库中,以便做实名认证或者其它 ...

  6. java 身份证地址提取籍贯_获取身份证信息中的籍贯、出生及性别信息

    前言:之前在项目开发中,经常需要用户录入身份证信息,同时还要提供籍贯等信息.那么,如何从身份证号码中解析出籍贯等信息,就是本篇博客索要解决的. 其实,身份证号码前6位就是用户的籍贯编码,直接解析该6位 ...

  7. js获取农历日期、节气等

    js获取农历日期.节气等信息的插件–solarlunar https://github.com/yize/solarlunar#readme 点我直达 npm install solarlunar / ...

  8. 通过身份证号获取个人信息(JAVA代码)

    通过身份证号获取个人信息(JAVA代码) 个人思路 如果有错误,欢迎留言 代码 个人思路 文档下载地址: 身份证对应省区 1.首先对身份证进行输入 对身份证信息进行匹配看是否符合身份证规则,我是利用正 ...

  9. uniapp同步获取用户信息_微信小程序云开发教程微信小程序的API入门获取用户身份信息系列API...

    同学们大家好,我是小伊同学,上一节我们介绍了一些常用API,今天我们接着来学习一组API,那就是获取用户身份信息的API. 在微信小程序中,我们往往需要获取用户的身份信息,比如昵称.头像.性别.地区等 ...

最新文章

  1. 电影推荐_亲和性分析_规则提取(数据挖掘入门与实践-实验6)
  2. 米老鼠想吞并喜羊羊,不是赤裸裸的文化侵略是什么
  3. sun.misc.Unsafe和堆外内存
  4. SpringBoot入门到精通_第7篇 _必知必会总结
  5. C# 利用类名字符串调用并执行类方法
  6. C++关键字this
  7. 蔚来事件后 理想和小鹏改了“辅助驾驶系统”官方宣传用词
  8. 尴尬!Google搜索现在也会“千人千面”了,退出登录也一样
  9. win32汇编--创建窗口程序(RadAsm)
  10. Yocto系列讲解[理论篇] 3 - meta layer recipe class概念介绍
  11. 25.JavaScript的Symbol类型、隐藏属性、全局注册表
  12. STM32 Cube mx的MDK项目编译报错与debug
  13. 计算机策略组 网络,组策略
  14. 2022 大一大二基础hive考试题
  15. Paragraph 对象'代表所选内容、范围或文档中的一个段落。Paragraph 对象是 Paragraphs 集合的一个成员。Paragraphs 集合包含所选内容、范围或文档中的所有段落。...
  16. Spring框架究竟是什么
  17. ngnix配置及实例
  18. Ubuntu18.04重启后无法进入图形化界面
  19. Android8.1修改packageinstaller安装指定应用不弹窗静默安装
  20. 数据库备份的两种方法

热门文章

  1. 洞悉旅居新市场,木莲庄酒店集团开拓酒店多元新玩法
  2. 美食探店的文章怎么写?有什么技巧
  3. mysql dump 2013_mysqldump 错误2013 Lost connection
  4. 生死看淡,不服就GAN(五)----用DCGAN生成MNIST手写体
  5. (附源码)spring boot工作计划管理软件 毕业设计181638
  6. android4.4风格,Android 4.4消息汇总 扁平化风格来袭
  7. [个人笔记] Zabbix配置钉钉群聊告警机制
  8. 正版软件 Microsoft 365 家庭版 1用户 58
  9. 【无标题】体验scratch海底世界
  10. 穷养儿,富养女一一原来是指这样