zoukankan      html  css  js  c++  java
  • 手写日历-数组组成

    function packageArr () {
           let allDays = getMonthDay();
           // 查询有几周
           let weeks = allDays.length / 7 > 4 ? 5 : 4;
           // 查询每周一的下标
           let indexArr = [];
           allDays.map((val, index) => {
              if(val.week === 1){
                  indexArr.push(index);
              }
           });
           // 如果第一天正好是 周一 则剔除indexArr[0]
           if(indexArr[0] === 0){
              indexArr.splice(0, 1);
           };
           // 将 每周塞进数组
           let arr = [];
           for(let i = 0;i < weeks;i++){
               if(i === 0){
                  arr[i] = allDays.slice(0, indexArr[0]);
               }else{
                  arr[i] = allDays.slice(indexArr[i-1], indexArr[i]);
               }
               if(arr[i].length < 7 && arr[i][0].week === 1){
                   let diff = 7 - arr[i].length;
                   for(let j = 0;j < diff;j++){
                      arr[i].push({});
                   }
               }else if(arr[i].length < 7 && arr[i][0].week !== 1){
                  let diff = 7 - arr[i].length;
                  for(let j = 0;j < diff;j++){
                      arr[i].unshift({});
                  }
               }
           };
           return arr;
        //   返回值
        //[
        //  [{}, {}, {}, {}, {day: '2021-01-01', week: 5},
    {day: '2021-01-02', week: 6}, {day: '2021-01-03', week: 7},],
        //  [
        //    {day: '2021-01-04', week: 1}
        //    {day: '2021-01-05', week: 2}
        //    {day: '2021-01-06', week: 3}
        //    {day: '2021-01-07', week: 4}
        //    {day: '2021-01-08', week: 5}
        //    {day: '2021-01-09', week: 6}
        //    {day: '2021-01-10', week: 7}
        //  ],
        //  [
        //    {day: '2021-01-11', week: 1}
        //    {day: '2021-01-12', week: 2}
        //    {day: '2021-01-13', week: 3}
        //    {day: '2021-01-14', week: 4}
        //    {day: '2021-01-15', week: 5}
        //    {day: '2021-01-16', week: 6}
        //    {day: '2021-01-17', week: 7}
        //  ],
        //  [
        //    {day: '2021-01-18', week: 1}
        //    {day: '2021-01-19', week: 2}
        //    {day: '2021-01-20', week: 3}
        //    {day: '2021-01-21', week: 4}
        //    {day: '2021-01-22', week: 5}
        //    {day: '2021-01-23', week: 6}
        //    {day: '2021-01-24', week: 7}
        //  ],
        //  [
        //    {day: '2021-01-25', week: 1}
        //    {day: '2021-01-26', week: 2}
        //    {day: '2021-01-27', week: 3}
        //    {day: '2021-01-28', week: 4}
        //    {day: '2021-01-29', week: 5}
        //    {day: '2021-01-30', week: 6}
        //    {day: '2021-01-31', week: 7}
        //  ],
        //]
    };
    // 获取 月份 对应的所有日期
    function getMonthDay () {
      let now = new Date();
      let current_month_num = mGetDate();
      let current_month = [];
      for (let i = 1; i <= current_month_num; i++) {
        let day = now.setDate(i);
        let everyDay = dateFormat(new Date(day), 'yyyy-MM-dd');
        current_month.push({
          day: everyDay,
          week: new Date(everyDay).getDay() === 0 ? 7 :new Date(everyDay).getDay()
        });
      };
      return current_month;
    };
     
    // 获取当前月的天数
    function mGetDate () {
      var date = new Date();
      var year = date.getFullYear();
      var month = date.getMonth() + 1;
      var d = new Date(year, month, 0);
      return d.getDate();
    };
     
  • 相关阅读:
    [C++ Primer Plus] 第9章、内存模型和名称空间(二)课后习题
    [C++ Primer Plus] 第9章、内存模型和名称空间(一)程序清单
    [c/c++] programming之路(28)、结构体存储和内存对齐+枚举类型+typedef+深拷贝和浅拷贝
    [c/c++] programming之路(27)、union共用体
    [c/c++] programming之路(26)、结构体
    opencv学习之路(37)、运动物体检测(二)
    [Python]基础教程(4)、Python 变量类型
    opencv学习之路(36)、运动物体检测(一)
    opencv学习之路(35)、SURF特征点提取与匹配(三)
    opencv学习之路(34)、SIFT特征匹配(二)
  • 原文地址:https://www.cnblogs.com/Mr-Rshare/p/14511982.html
Copyright © 2011-2022 走看看