生成日期序列

逸男2022年12月12日
  • JavaScript
  • js工具箱
小于 1 分钟

生成日期序列

let startYear = 2000 // 开始年份
let endYear = 2030 // 结束年份
let difference = endYear - startYear //差值
let date = [] // 时间数组
// 循环添加年
for (let i = 0; i <= difference; i++) {
  date[i] = {
    name: startYear++,
    child: [],
  }
  // 循环添加月
  for (let j = 0; j < 12; j++) {
    date[i].child[j] = {
      name: j + 1,
      child: [],
    }
    let day = null
    // 31天月份
    let month1 = { 1: 1, 3: 1, 5: 1, 7: 1, 8: 1, 10: 1, 12: 1 }
    let month2 = { 4: 1, 6: 1, 9: 1, 11: 1 }
    if (month1[date[i].child[j].name] == 1) {
      day = 31
    }
    // 30天月份
    else if (month2[date[i].child[j].name] == 1) {
      day = 30
    }
    // 2月
    else if (date[i].child[j].name == 2) {
      let year = date[i].name
      // 闰年判断
      let cond1 = year % 4 == 0 //条件1:年份必须要能被4整除
      let cond2 = year % 100 != 0 //条件2:年份不能是整百数
      let cond3 = year % 400 == 0 //条件3:年份是400的倍数
      var boo = (cond1 && cond2) || cond3
      if (boo) {
        day = 28
      } else {
        day = 29
      }
    }
    // 循环添加天数
    for (let k = 0; k < day; k++) {
      date[i].child[j].child[k] = {
        name: k + 1,
      }
    }
  }
}

console.log(date)
上次编辑于:
贡献者: yinan