微信小程序,获取农历日期方法

在要用到农历日期的.js里加入代码

Page({data: {Nongli:0,lunarInfo: [0x04bd8, 0x04ae0, 0x0a570, 0x054d5, 0x0d260, 0x0d950, 0x16554,0x056a0, 0x09ad0, 0x055d2, 0x04ae0, 0x0a5b6, 0x0a4d0, 0x0d250, 0x1d255, 0x0b540, 0x0d6a0, 0x0ada2, 0x095b0,0x14977, 0x04970, 0x0a4b0, 0x0b4b5, 0x06a50, 0x06d40, 0x1ab54, 0x02b60, 0x09570, 0x052f2, 0x04970, 0x06566,0x0d4a0, 0x0ea50, 0x06e95, 0x05ad0, 0x02b60, 0x186e3, 0x092e0, 0x1c8d7, 0x0c950, 0x0d4a0, 0x1d8a6, 0x0b550,0x056a0, 0x1a5b4, 0x025d0, 0x092d0, 0x0d2b2, 0x0a950, 0x0b557, 0x06ca0, 0x0b550, 0x15355, 0x04da0, 0x0a5d0,0x14573, 0x052d0, 0x0a9a8, 0x0e950, 0x06aa0, 0x0aea6, 0x0ab50, 0x04b60, 0x0aae4, 0x0a570, 0x05260, 0x0f263,0x0d950, 0x05b57, 0x056a0, 0x096d0, 0x04dd5, 0x04ad0, 0x0a4d0, 0x0d4d4, 0x0d250, 0x0d558, 0x0b540, 0x0b5a0,0x195a6, 0x095b0, 0x049b0, 0x0a974, 0x0a4b0, 0x0b27a, 0x06a50, 0x06d40, 0x0af46, 0x0ab60, 0x09570, 0x04af5,0x04970, 0x064b0, 0x074a3, 0x0ea50, 0x06b58, 0x055c0, 0x0ab60, 0x096d5, 0x092e0, 0x0c960, 0x0d954, 0x0d4a0,0x0da50, 0x07552, 0x056a0, 0x0abb7, 0x025d0, 0x092d0, 0x0cab5, 0x0a950, 0x0b4a0, 0x0baa4, 0x0ad50, 0x055d9,0x04ba0, 0x0a5b0, 0x15176, 0x052b0, 0x0a930, 0x07954, 0x06aa0, 0x0ad50, 0x05b52, 0x04b60, 0x0a6e6, 0x0a4e0,0x0d260, 0x0ea65, 0x0d530, 0x05aa0, 0x076a3, 0x096d0, 0x04bd7, 0x04ad0, 0x0a4d0, 0x1d0b6, 0x0d250, 0x0d520,0x0dd45, 0x0b5a0, 0x056d0, 0x055b2, 0x049b0, 0x0a577, 0x0a4b0, 0x0aa50, 0x1b255, 0x06d20, 0x0ada0],chineseNumber:["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "十二"],lunarDate:'',},getLunarDate: function() {var self = this;var yearCyl,monCyl,dayCyl;var leapMonth = 0;var date = new Date('1900/1/31');var curDate =new Date();// 求出和1900年1月31日相差的天数var offset = parseInt( (curDate.getTime() - date.getTime()) / 86400000 );dayCyl = offset + 40;monCyl = 14;// 用offset减去每农历年的天数// 计算当天是农历第几天// i最终结果是农历的年份// offset是当年的第几天var iYear, daysOfYear = 0;for (iYear = 1900; iYear < 2050 && offset > 0; iYear++) {daysOfYear = self.yearDays(iYear);offset -= daysOfYear;monCyl += 12;}if (offset < 0) {offset += daysOfYear;iYear--;monCyl -= 12;}yearCyl = iYear - 1864;leapMonth = self.leapMonth(iYear); // 闰哪个月,1-12var leap = false; // 默认值// 用当年的天数offset,逐个减去每月(农历)的天数,求出当天是本月的第几天var iMonth, daysOfMonth = 0;for (iMonth = 1; iMonth < 13 && offset > 0; iMonth++) {// 闰月if (leapMonth > 0 && iMonth == (leapMonth + 1) && !leap) {--iMonth;leap = true;daysOfMonth = self.leapDays(iYear);} elsedaysOfMonth = self.monthDays(iYear, iMonth);offset -= daysOfMonth;// 解除闰月if (leap && iMonth == (leapMonth + 1))leap = false;if (!leap)monCyl++;} // offset为0时,并且刚才计算的月份是闰月,要校正if (offset == 0 && leapMonth > 0 && iMonth == leapMonth + 1) {if (leap) {leap = false;} else {leap = true;--iMonth;--monCyl;}}// offset小于0时,也要校正if (offset < 0) {offset += daysOfMonth;--iMonth;--monCyl;}var newday = self.getChinaDayString(offset + 1);var newmonth = self.data.chineseNumber[iMonth - 1];self.setData({lunarDate: newmonth + '月' + newday})//把日期整合成一个字符串var nongli=iYear+'年'+newmonth + '月' + newday;//把nongli赋值给date里的Nongli,才能在html中使用this.setData({Nongli:nongli})},//***上面的方法调用下面的方法***yearDays: function (y) {var self = this;var i, sum = 348;for (i = 0x8000; i > 0x8; i >>= 1) {if ((self.data.lunarInfo[y - 1900] & i) != 0)sum += 1;}return (sum + self.leapDays(y));},leapDays: function(y){var self = this;if (self.leapMonth(y) != 0) {if ((self.data.lunarInfo[y - 1900] & 0x10000) != 0)return 30;elsereturn 29;} elsereturn 0;},leapMonth:function(y) {var self = this;return self.data.lunarInfo[y - 1900] & 0xf;},monthDays:function(y,m){if ((this.data.lunarInfo[y - 1900] & (0x10000 >> m)) == 0)return 29;elsereturn 30;},getChinaDayString:function(day){var self = this;var chineseTen = [ "初", "十", "廿", "卅"];var n = day % 10 == 0 ? 9 : day % 10 - 1;if (day > 30)return "";if (day == 10)return "初十";elsereturn chineseTen[parseInt(day/10)] + self.data.chineseNumber[n];},/*** 生命周期函数--监听页面加载*/onLoad: function (options) {//页面加载就调用获取农历的方法this.getLunarDate();}
})

html

<view>今天是:{{Nongli}}</view>

效果图

代码为学习整合而来,学习处为: 【微信小程序】获取农历及星期.

微信小程序,获取农历日期方法相关推荐

  1. 微信小程序获取openid和session_key并且把openid存入数据库

    微信小程序开发交流qq群   581478349 微信小程序获取openid和session_key并且把openid存入数据库.已经调用openid的demo 前后端代码都有,后端php实现 在其它 ...

  2. android获取小程序音频时长,最新微信小程序获取音频时长与实时获取播放进度...

    #微信小程序获取音频时长与实时获取播放进度 在小程序官方文档中 audio 注意:1.6.0 版本开始,该组件不再维护.建议使用能力更强的 wx.createInnerAudioContext 接口 ...

  3. 微信小程序获取用户手机号--官方示例

    微信小程序获取用户手机号–官方示例 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNu ...

  4. 微信小程序 获取用户信息并保存登录状态

    微信小程序 获取用户信息并保存登录状态:http://www.360doc.com/content/18/0124/11/9200790_724662071.shtml 转载于:https://www ...

  5. .Net之微信小程序获取用户UnionID

    前言: 在实际项目开发中我们经常会遇到账号统一的问题,如何在不同端或者是不同的登录方式下保证同一个会员或者用户账号唯一(便于用户信息的管理).这段时间就有一个这样的需求,之前有个客户做了一个微信小程序 ...

  6. uni-app微信小程序获取手机号;微信小程序获取手机号,获取到后需要进行解密;微信小程序获取手机号失败 Error:该appId没有权限

    方法1.uni-app登录加获取手机号解密-直接看此篇即可解决 微信小程序获取手机号注意点: 1.需要先登录,微信小程序登录看这篇 2.手机号获取到时加密的,需要后端解密或者前端自己解密(解密时候就会 ...

  7. 微信小程序获取unionid为空

    微信小程序获取unionid为空 原因:未绑定微信开放平台 绑定步骤 原因:未绑定微信开放平台 最新在调试一个新的微信小程序,因为要对web授权登录.app授权登录.小程序授权登录:几种登录场景根据u ...

  8. 微信小程序获取二维码中URL中带的参数

    解析微信小程序获取二维码中的url参数 onLoad: function (options) { console.log(options) let qrUrl = decodeURIComponent ...

  9. 微信小程序 获取input输入的值

    微信小程序 获取input输入的值 view <view><text>姓名:</text><input type='text' name="user ...

  10. 微信小程序获取上一页路由 获取从哪个页面跳转进来的

    微信小程序获取上一页路由 获取从哪个页面跳转进来的 var pages = getCurrentPages(); let prevpage = pages[pages.length - 2];//上一 ...

最新文章

  1. Python设计模式-策略模式
  2. 一个整数数组,每个数字都出现K次,只有一个数字出现M次,找出这个数字(线性时间)
  3. html5的网络书店图书网站代码_【技能提升】10个编写HTML5的实用小技巧
  4. lintcode 最大子数组III
  5. List 去重的 6 种方法,这个方法最完美!
  6. 疲劳驾驶样本集_谷歌AI最新3D数据集,1.5万张动图,让AR主宰你的生活
  7. pyspark对应的scala代码PythonRDD类
  8. leetcode 397 整数替换
  9. 如何永久的关闭macOS 更新提示?
  10. R2B fpga flow script
  11. java可以看懂php代码吗_同一段代码,在PHP里和Java里都能运行,输出结果相同,你能看懂其中的原理吗?...
  12. JB的Python之旅-爬虫篇--requestsScrapy
  13. 粒子群算法优化BP和Elman神经网络-matlab源码
  14. 虚幻引擎4控制台变量和命令
  15. 论坛项目小程序和h5登录
  16. trash-1000
  17. ca根证书校验 java_JAVA-Android-根据CA证书验证X509Certificate(颁发者证书)
  18. Percolator事务模型
  19. 西电杨宗凯调研计算机学院,西安电子科技大学校长杨宗凯到网络与继续教育学院调研指导工作...
  20. 计算机网络课程设计——中小型网络工程设计与实现

热门文章

  1. 网线插座接法,网线模块制作及其安装步骤(图解)
  2. inventor能画抄数图吗_画图与图纸转换 抄数
  3. 计算机教程求和,excel筛选求和的方法步骤图
  4. 双绞线的种类与选择:
  5. PS图层+移动工具(2)复制删除快捷键 图层分组 前景色填充
  6. C++内存空间:静态存储区、栈、堆、文字常量区、程序代码区
  7. Unity3D天气系统插件UniStorm 3.0.1.1 插件使用说明
  8. MySQL 字符集和校对集
  9. 尾行注释转行上注释 正则表达式
  10. c语言时间换算结构体9,C语言实现时区转换函数的实例