gpt4 book ai didi

javascript - 如何计算Javascript中日期对象数组中任意时间的时间百分比

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:00:47 27 4
gpt4 key购买 nike

我有一个已排序的 Javascript 日期对象数组,该数组的长度始终为 14 个条目。伪:

dates
["label1"] = date object 1,
["label2"] = date object 2,
...
["label14"] = date object 14

虽然它们按日期排序,但日期分布不均。例如,条目 1 和条目 2 之间可能是 1 小时,而条目 5 和条目 6 之间可能是几分钟或几小时。

我的挑战是找到一种算法,对于任何给定的输入日期,将从该数组中找到以下内容:

  • 上一个日期在数组中的位置
  • 下一个日期在数组中的位置
  • 我们的输入日期将介于上述日期之间,我想知道这两个时间点之间的时间百分比。例如,恰好在两个日期之间将返回 50%。

我不喜欢问“请为我编写代码”的问题,但我真的不擅长编写高效的算法,而且一直未能成功找到现有的算法。

最佳答案

由于数组已排序,前一个日期位于数组中的前一个位置,而下一个日期位于数组中的下一个位置。

要确定百分比,您可以简单地使用以下公式:

var percentage = (date - prev) / (next - prev);

这将产生 0 到 1 之间的数字,因此如果您需要 0 到 100% 之间的数字,只需乘以 100。

例子:

var dates = [];
for (var i=0; i<14; i++) { dates.push(new Date(1392119656126 + i*i*10000000)) }
for (var i = 1; i<dates.length-1; i++) {
var percentage = ((dates[i]-dates[i-1])/(dates[i+1]-dates[i-1])) * 100;
console.log('P', dates[i-1], 'C', dates[i], 'N', dates[i+1], 'PERC', percentage);
}

关于javascript - 如何计算Javascript中日期对象数组中任意时间的时间百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21700984/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com