我已经看到很多地方,方法需要很长的时间或int来表示持续时间(纳秒、毫秒(最常见)、秒甚至天)。这也是一个寻找错误的好地方。
一旦你意识到你可以将持续时间理解为一定的秒数,或者更适合人类对时间的感知的时间间隔,那么这个问题就相当复杂了,因此24小时的持续时间总是在第二天的同一个“挂钟”时间。或者一年是365天或者366天,这取决于日期,所以从2月28日开始的一年总是2月28日。
为什么没有不同的类型来表示这个?我在Java和.NET中都没有发现。
对于Java,请看 Joda (直观一致的日期/时间库)及其 Duration 和 Period 类。 DateTime 对象可以通过这些对象处理添加和操作。
DateTime
(答案已更改,以反映以下评论。周期类)
在.NET中,您可以使用 TimeSpan structure 代表一段时间。
这不是一个容易的问题。也许吧 Joda-Time 对你来说是个有用的图书馆。它有一个持续时间类,可以满足您的要求。