找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

github精选:微信小程序实现简单的日历

作者:模板之家 2017-12-8 17:46 388人关注

if you have ever thought how to accomplish a simple calendar. youll konw what Im talking about 核心问题 每个月有多少天? - 1月,3月,5月,7月,8月,10月,12月,都是31天- 2月平年是28天,闰年是29天- 其 ...

if you have ever thought how to accomplish a simple calendar. you'll konw what I'm talking about

 
 
 

核心问题

每个月有多少天?

- 1月,3月,5月,7月,8月,10月,12月,都是31天
- 2月平年是28天,闰年是29天
- 其他月份:4月,6月,9月,11月

每个月的第一天是星期几?

function firstDay(date) {
  return new Date(date + '-01').getDay()
}

核心函数

判断闰年还是平年

function is_leap(year) {
  return year % 400 === 0  || year % 4 === 0 && year % 100 !== 0 ? true : false
}

获取某一年各月的天数

function m_days(year) {
  return [31,28+is_leap(year),31,30,31,30,31,31,30,31,30,31]
}

获取某年某月的第一天是星期几

function firstDay(date) {
  return new Date(date + '-01').getDay()
}

获取每个月的天数数组

function generateDays(date) {
  var year  = date.split('-')[0]
  var month = date.split('-')[1] - 1
  var arr = []
  //根据某年某月的第一天是星期几来填充空值
  for(let j = 0; j < firstDay(date); j++) {
    arr.push({value: '', num: ''})
  }
  for(let i = 0; i < m_days(year)[month]; i++) {
     let value = year + '-' + addZero(month+1) + '-' + addZero(i+1)
     arr.push({
         num: addZero(i+1),
         value: value,
    })
  }
  return arr
}
项目地址:https://github.com/wardenger/wx-calendar 
项目下载:wx-calendar-master (1).zip


路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)