我本来就是要写这个,但我知道这必须存在,我只是设法避免所有引导我的Google关键字。
我会寻找像DDDMMMYYY这样的东西,其中D,M,Y是天数,月数和年数。因此,00103000表示三个月和一天的跨度,或000000001表示一年的跨度。理想情况下,这种格式也有一种标准的应用方式,可以考虑到时间跨度计算的所有缺陷,例如一个月内的不同天数,闰年等等。
我不是在寻找一种方法来计算两个已知时间戳之间的时间间隔,正如这里所要求的那样(Calculate relative time in C#),我正在寻找类似于我可以存储的特定字符串格式的东西,这将指示跨度用于确定已知日期的第二个未知日期的时间。
例如,使用我上面的虚构格式:如果我说“从2009年9月15日算出什么日期将是00103000”将返回“2009年12月16日”,即9月15日之后的3个月和1天。
答案 0 :(得分:4)
我建议查看ISO 8061格式的持续时间。它不仅易于解析并适用于给定日期,它是一个众所周知的标准,拥有大量可用资源。
从两个时间点确定持续时间有点棘手,但仅仅因为没有来自应用程序的输入,不清楚1月3日到1月6日是3个月还是92天。尽管如此,格式既可以表达同样好,也可以表示例如0.25年。
答案 1 :(得分:2)
最简单和最常见的表示形式是数字:时间跨度中的秒数(可能是也可能不是分数,具体取决于您的需要)。许多时间库已经represent time as seconds since the epoch,所以这使得时间的加法和减法变得微不足道。关注的唯一主要问题是溢出(例如year 2038 bug)。