【问题标题】:Calculate time diffrence [duplicate]计算时差[重复]
【发布时间】:2019-07-07 13:22:46
【问题描述】:

我有两种输入类型时间。 1. 入境时间 2. 退出时间

示例 1:

开始:00:00 结束:01:30 结果:1.5

示例 2:

开始:14:00 结束:00:00 结果:10

如何创建一个算法来计算有多少员工在工作? 这个数字将乘以他的收入。 例如hours * rate (1.5 * 15)

【问题讨论】:

    标签: javascript reactjs algorithm


    【解决方案1】:

    我会以秒为单位计算工作时间,因为它更加清晰和童话。

    // Example data
    const secondsWorked  = 4321;
    const rate = 15;
    
    const secondsInHour = 3600;
    
    const hoursWorked = secondsWorked / secondsInHour;
    // Output: 1.2002777777777778
    console.log("Hours worked: ", hoursWorked);
    
    // Output: 18.0041666666666...
    const income = hoursWorked * rate;
    console.log("Calculated income: ", income);
    

    【讨论】:

    • 如果我不想知道工作的开始和结束日期并且只想有工作时间,我会这样做。
    【解决方案2】:

    您需要更改时间格式。

    例如:

    14:30 -> 14.5

    23:15 -> 23.25

    结果是 23.25 - 14.5

    【讨论】:

      【解决方案3】:

      您需要单独的分钟和小时,并计算每个小时的差异。请记住,如果开始分钟大于完成分钟,您应该减去 1 小时。结果需要分钟差除以 60 分钟。

      var start = "00:56";
      var finish = "05:59";
      
      function getHours(time) {
          return time.split(":")[0];
      }
      
      function getMinutes(time) {
          return time.split(":")[1];
      }
      
      function getDifference(start, finish) {
      
          var hoursDifference = getHours(finish) - getHours(start);
          var minutesDifference = function () {
              if (getMinutes(finish) > getMinutes(start)) {
                  return getMinutes(finish) - getMinutes(start);
              } else {
                  return getMinutes(start) - getMinutes(finish);
              }
          };
      
          if (getMinutes(start) > getMinutes(finish)) {
              hoursDifference = hoursDifference - 1;
          }
      
          return hoursDifference + "." + (minutesDifference() / 60).toString().replace("0.", "");
      }
      
      var difference = getDifference(start, finish);
      

      【讨论】:

        猜你喜欢
        • 2014-07-16
        • 1970-01-01
        • 2013-07-10
        • 1970-01-01
        • 2016-08-25
        • 1970-01-01
        • 1970-01-01
        • 2011-07-18
        • 1970-01-01
        相关资源
        最近更新 更多