欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

实现日历的一种思路

程序员文章站 2022-06-09 22:00:58
...
1. 获取当月第一天是星期几, 当月总天数
  //由Date对象提供的getDay()方法
  var currentTime = new Date(),//当前时间
      currentYear = currentTime.getFullYear(),//当前年份
      currentMonth = currentTime.getMonth(),//当前月份
      currentWeek = new Date(currentYear, currentMonth, 1).getDay(),//当月第一天是周几
      currentTotalDay = new Date(currentYear, currentMonth + 1, 0).getDate();//当月总天数

2.计算在当月显示上个月份或者是上一年12月份的日期号
  //获取上个月或者上一年12月份的总天数
  //当currentMonth=0,得到的为上一年12月份总天数
  var prevDateTotalDay = new Date(currentYear, currentMonth, 0).getDate();
  //根据星期0, 1, 2, 3, 4, 5, 6分别对应周末至周六
  //计算上个月需要展示的日期号
  var prevShowDate = [];
  for(var i = 0; i < currentWeek; i++) {
      prevShowDate.unshift(prevDateTotalDay - i);
  }

3.计算下一月或下一年需要展示的日期号
  //当currentMonth=11,nextDate则为下一年一月份
  //var nextDate = new Date(currentYear, currentMonth + 2, 0)
  var nextShowDate = [],
      nextMonthStartDay = 1;
  //如果已确定当前需要展示的元素个数,比如需要展示42个或者35个
  for(var j = prevShowDate.length + currentTotalDay; j < 42; j++) {
      nextShowDate.push(nextMonthStartDay++);
  }