手机上下班打卡 部分逻辑

175 阅读1分钟
let arr = [
        {
          time: '8:00',
          state: 1,
        },
        {
          time: '12:00',
          state: 0,
        },
        {
          time: '13:00',
          state: 0,
        },
        {
          time: '15:00',
          state: 0,
        },
      ];
      let current_time = this.time_sf('8:20');
      if (current_time > this.time_sf(arr[arr.length-1].time)) { //大于最后一次打卡时间
        if (arr[arr.length-1].state == 0) {
          console.log('最后一次下班打卡');
          return;
        } else {
          console.log('今天打卡完成');
          return;
        }
      }
      for (let p in arr) {
        let i = parseInt(p);
        if (this.time_sf(arr[i].time) > current_time) {
          if (i == 0) { //第一次上班正常打卡
            console.log('第一次上班正常打卡');
            return;
          } else if (arr[i - 1].state == 0) {  // 如果上一次的状态等于未打卡
            if (i % 2 == 0) {  //下班打卡 0,2
              console.log(`第${i - 1}次下班打卡`);
            } else {  //上班打卡  1,3
              console.log(`第${i - 1}次迟到打卡`);
            }
            return;
          } else if (arr[i].state == 0) {  //如果这次的状态等于未打卡
            //第i次正常打卡
            console.log(`第${i}次正常打卡`);
            return;
          }
        }
      }

this.time_sf() 是转成分钟的一个函数