当滴答声溢出时会发生什么?

时间:2013-03-13 17:08:26

标签: .net datetime overflow clock

这个问题的主题是日期和时间计算。

.NET与许多其他平台一样,在很大程度上依赖于某种形式的最小离散时间表示,例如DateTime.Ticks。 tick是Int64类型,最大值大约为9 * 10 18

假设.NET时钟从1-JAN-0001开始计时,并且在我粗略计算之后,将需要大约3万年的时间才能达到Int64.MaxValue

问题:明年会发生什么样的处理这种溢出的方法?

1 个答案:

答案 0 :(得分:4)

我认为,就像许多COBOL程序中存在的Y2K错误一样,您必须转移根或扩展值。现在,为了使该陈述不那么抽象,让我们说它们移动了根 - 所以它不再是1-JAN-0001,它可能是1-JAN-1001

这会导致一些问题。这就是如何在COBOL中解决Y2K错误,所以当2040为很多商店而来时,他们将不得不再次更改滚动日期,或者扩展价值。

在他们的情况下,扩展值只是意味着使用4位数的年份,但在那些MF程序中并不总是那么简单,因为数据并不总是存储在数据库中,很多时候它都在VSAM文件中什么的。

所以,这就是我认为会发生的事情,因为计算继续变得更大更快(但更小......嗯)你会发现他们只会将值从Int64扩展到{{1}并将根留在原处。这将是我能想到的零负面影响,因此这将是最安全的方法。