Math 获得剩余时间

Math 获得剩余时间,math,Math,假设某件事以每小时5000次的速度发生,但仍有一些剩余(比如说2500次) 我如何获得剩余的小时、分钟和秒数 我想应该是这样的: hour = floor(remaining / perHour) mins = floor(remaining % perHour / 60) secs = floor(remaining % perHour % 60) 但是,使用以下公式计算备份时返回的金额不正确 time = hour + (mins / 60) + (secs / 60 / 60) time

假设某件事以每小时5000次的速度发生,但仍有一些剩余(比如说2500次)

我如何获得剩余的小时、分钟和秒数

我想应该是这样的:

hour = floor(remaining / perHour)
mins = floor(remaining % perHour / 60)
secs = floor(remaining % perHour % 60)
但是,使用以下公式计算备份时返回的金额不正确

time = hour + (mins / 60) + (secs / 60 / 60)
time * perHour // 3472.2 - not 2500
时间应该更短,所以我显然计算错了。如果有人能解释我错在哪里,我将不胜感激

编辑:我知道这不是数学SE,但数学SE应该是高水平的数学,这是下一个最适合的


我想出了一个方法,但它可能不是最好的,所以我将把这个问题搁置一段时间

hour = floor(remaining / perHour)
mins = floor(remaining / perHour * 60) - hour * 60
secs = floor(remaining / perHour * 3600) - mins * 60 - hour * 3600

我们的问题是还有多少时间,我们知道这个过程的速度。毫无疑问,我们建立了一个速率(项目/分钟、项目/秒),并将剩余元素的数量除以速率。我们可以使用任何我们想要的时间单位,只要我们保持一致——就个人而言,我喜欢每秒的速率,因为
Hz

演示

函数getRemainingTime(重新定义){
const processrate per hour=5000;
const processRate=(processratephour/60/60);//每秒1.3888
remainingSeconds=remainingItems/processRate;
返回{
小时:(剩余秒/3600),
分钟:(剩余秒/60),
秒数:剩余秒数
};
}
功能显示进度(剩余项目){
var time=getRemainingTime(remainingItems);
var list=document.createElement('ul');
var processEnd=moment().add(time.seconds,'s');
list.innerHTML=`
    还有${remainingItems},我们将完成${processEnd.fromNow()}。
  • 剩余小时数:${time.Hours}
  • 剩余分钟数:${time.Minutes}
  • 剩余秒数:${time.Seconds}
`; 文件.正文.附件(列表); } //让我们试试看! showProgress(4999); showProgress(2500); 显示进度(100)
正文{
字体系列:“Helvetica”,无衬线;
}


请接受我的回答我正在尝试以小时、分钟和秒为单位获取剩余时间。不是每秒的速率。请阅读问题或解释你的意思。我没有时间。只有小时工资和剩余金额。更改答案以反映。这可能比你想象的要简单。我们所需要做的就是将剩余项目的数量除以比率。我们很自豪地发布了“请接受我的答案”的测试版,这是一个简单的香草JS应用程序,告诉您流程中还有多少时间。“编辑:我知道这不是数学SE,但数学SE应该用于高级数学,这是第二个最适合的。”StackOverflow绝对不是合适的网站。我投票结束这个问题,因为它是关于编程或软件开发的,而不是关于主题。