zoukankan      html  css  js  c++  java
  • 【CodeWars】Human readable duration format时间可读化

    比较简单的一道题
    题目要求是把秒数转化成字符串:

    formatDuration(62)    // returns "1 minute and 2 seconds"
    formatDuration(3662)  // returns "1 hour, 1 minute and 2 seconds"
    

    答案:

    const YEAR = 86400 * 365;
    const DAY = 86400;
    const HOUR = 3600;
    const MIN = 60;
    const SEC = 1;
    const MAP = {
      0: "year",
      1: "day",
      2: "hour",
      3: "minute",
      4: "second",
    };
    
    const formatDuration = (givenTime) => {
      let time = givenTime;
      const resArr = [];
      [YEAR, DAY, HOUR, MIN, SEC].forEach((num, index) => {
        const temp = Math.floor(time / num);
        if (temp > 0) {
          if (temp === 1) {
            resArr.push(`1 ${MAP[index]}`);
          } else {
            resArr.push(`${temp} ${MAP[index]}s`);
          }
          time = time - temp * num;
        }
      });
      if (resArr.length === 0) {
        return "now";
      }
      const res = resArr.reverse().reduce((a, c, index) => {
        switch (index) {
          case 0:
            return c;
          case 1:
            return `${c} and ${a}`;
          case 2:
          case 3:
          case 4:
            return `${c}, ${a}`;
          default:
            break;
        }
      });
      return res;
    };
    
  • 相关阅读:
    java学习55天2020/8/29
    java学习51天2020/8/25
    java学习55天2020/8/31
    java学习49天2020/8/23
    java学习52天2020/8/26
    java学习48天2020/8/22
    2020.12.05
    2020.12.04
    2020.12.07
    2020.12.03
  • 原文地址:https://www.cnblogs.com/hikki-station/p/14974222.html
Copyright © 2011-2022 走看看