gpt4 book ai didi

计算两次之间差异所需的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:43 25 4
gpt4 key购买 nike

我有一个小时选择下拉列表 0-23 和分钟选择下拉列表 0-59 Start timeEnd时间分别(所以四个控件)。

我正在寻找一种算法来使用这四个值计算时差。

由于它们没有存储在花哨的日期/时间选择控件中,我认为我无法使用任何标准的日期/时间操作函数。

如何计算两个时间的差值?

最佳答案

此伪代码为您提供了以分钟为单位算出差异的算法。它假定,如果开始时间在结束时间之后,则开始时间实际上是在前一天。

const MINS_PER_HR = 60, MINS_PER_DAY = 1440

startx = starthour * MINS_PER_HR + startminute
endx = endhour * MINS_PER_HR + endminute

duration = endx - startx
if duration < 0:
duration = duration + MINS_PER_DAY

startxendx 值是从午夜开始的分钟数。

这基本上是在做:

  • 获取从一天开始算起的分钟数作为开始时间。
  • 获取从一天开始到结束时间的分钟数。
  • 从后者中减去前者。
  • 如果结果是否定的,加上一天的分钟数。

不过不要太确定您不能使用日期/时间操作函数。你可能会发现你可以很容易地构造一个日期/时间并用类似的东西计算差异:

DateTime startx = new DateTime (1, 1, 2010, starthour, startminute, 0);
DateTime endx = new DateTime (1, 1, 2010, endhour , endminute , 0);
Integer duration = DateTime.DiffSecs(endx, startx) / 60;
if (duration < 0)
duration = duration + 1440;

尽管您的简单场景可能不需要它。我会坚持使用上面给出的伪代码,除非您发现自己在进行一些更棘手的日期/时间操作。


如果您随后想将持续时间(以分钟为单位)转换为小时和分钟:

durHours = int(duration / 60)
durMinutes = duration % 60 // could also use duration - (durHours * 60)

关于计算两次之间差异所需的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3518819/

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