计算时间差

时间:2019-07-07 13:22:46

标签: javascript reactjs algorithm

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

示例1:

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

示例2:

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

如何创建一种算法来计算有多少员工在工作? 这个数字将乘以他的收入率。 例如REG QUERY "HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage" -v ACP|find /I "ACP" (1.5 * 15)

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您需要更改时间格式。

例如:

14:30-> 14.5

23:15-> 23.25

结果是23.25-14.5

答案 2 :(得分:0)

您需要单独的分钟和小时,并分别计算它们之间的差异。请记住,如果开始时间大于结束时间,则应减去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);