【发布时间】:2020-01-29 09:57:27
【问题描述】:
我的应用程序中有一个函数,它接受一个值并以一种特殊的方式将其输出。它可以计算一个值是相同的值,但拆分为“小时:分钟”。
我需要该函数也适用于负值 - 类似于函数内部的 if 检查以检查输入的时间是否为负,然后更改计算/输出。
这是一个非常简单的函数:
const calcSingle = time => {
// insert a if check somewhere here to check for time and if its negative
let hour = Math.floor(time / 60);
let minutes = time % 60;
hour = hour < 10 ? "0" + hour : hour;
minutes = minutes < 10 ? "0" + minutes : minutes;
return hour + ":" + minutes;
};
例如,如果我调用它:
calcSingle(200)我返回“03:20”,这是正确的值。
但是,如果我尝试calcSingle(-200),我会得到:“0-4:0-20”,这显然是错误的,因为它应该是相同的值但带有一个减号,所以这个 =>“-03:20”。
const calcSingle = time => {
// insert a if check somewhere here to check for time and if its negative
let hour = Math.floor(time / 60);
let minutes = time % 60;
hour = hour < 10 ? "0" + hour : hour;
minutes = minutes < 10 ? "0" + minutes : minutes;
return hour + ":" + minutes;
};
console.log(
calcSingle(200)
)
console.log(
calcSingle(-200)
)
编辑:感谢你们所有人的所有回复,我将使用 math.abs 它解决了我的问题!伟大的帮助家伙 - 有一个美好的一天!
【问题讨论】:
-
出于好奇,为什么它需要使用负数?除此之外,为什么不在第一行的
time变量周围使用Math.abs? -
您将时间作为负数传递,因此当将 0 连接到小时或分钟时,您对小时和分钟的计算为负数,然后 "0" + -hour 将设置为 0-hour:0-minute
-
@Jhecht 因为我需要显示我们的工人工作了多少小时,他们一个月的工作时间可能为负数:)
-
你是如何工作负时间的???
-
@Jhecht 如果你必须在一个月内获得 150 小时,可以说,但你只工作 145 小时,而不是下个月开始的 -05:00
标签: javascript reactjs react-native math time