【发布时间】: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. 入境时间 2. 退出时间
示例 1:
开始:00:00 结束:01:30 结果:1.5
示例 2:
开始:14:00 结束:00:00 结果:10
如何创建一个算法来计算有多少员工在工作?
这个数字将乘以他的收入。
例如hours * rate (1.5 * 15)
【问题讨论】:
标签: javascript reactjs algorithm
我会以秒为单位计算工作时间,因为它更加清晰和童话。
// 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);
【讨论】:
您需要更改时间格式。
例如:
14:30 -> 14.5
23:15 -> 23.25
结果是 23.25 - 14.5
【讨论】:
您需要单独的分钟和小时,并计算每个小时的差异。请记住,如果开始分钟大于完成分钟,您应该减去 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);
【讨论】: