我本来就是要写这个,但我知道这必须存在,我只是设法避免所有引导我的Google关键字。

我会寻找像DDDMMMYYY这样的东西,其中D,M,Y是天数,月数和年数。因此,00103000表示三个月和一天的跨度,或000000001表示一年的跨度。理想情况下,这种格式也有一种标准的应用方式,可以考虑到时间跨度计算的所有缺陷,例如一个月内的不同天数,闰年等等。

我不是在寻找一种计算两个已知时间戳之间的时间间隔的方法,如此处所述(计算C#中的相对时间),我正在寻找类似于我可以存储的特定字符串格式的东西,它表示用于确定已知日期的第二个未知日期的时间跨度。

例如,使用我上面的虚构格式:如果我说“从2009年9月15日开始计算什么日期将是00103000”将返回“2009年12月16日”,即9月15日之后的三个月和一天。

有帮助吗?

解决方案

我建议您查看 ISO 8061 格式的持续时间。它不仅易于解析并适用于给定日期,它是一个众所周知的标准,拥有大量可用资源。

从两个时间点确定持续时间有点棘手,但仅仅因为没有来自应用程序的输入,不清楚1月3日到1月6日是3个月还是92天。尽管如此,格式既可以表达同样好,也可以表示例如0.25年。

其他提示

最简单和最常见的表示形式是数字:时间跨度中的秒数(可能是也可能不是分数,具体取决于您的需要)。许多时间库已经表示自纪元以来的秒数,因此这使得加法和减法时间琐碎。关注的唯一主要问题是溢出(例如 2038年的错误)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top