这个问题的主题是日期和时间计算。
.NET与许多其他平台一样,在很大程度上依赖于某种形式的最小离散时间表示,例如DateTime.Ticks
。 tick是Int64
类型,最大值大约为9 * 10 18 。
假设.NET时钟从1-JAN-0001开始计时,并且在我粗略计算之后,将需要大约3万年的时间才能达到Int64.MaxValue
。
问题:明年会发生什么样的处理这种溢出的方法?
答案 0 :(得分:4)
我认为,就像许多COBOL程序中存在的Y2K错误一样,您必须转移根或扩展值。现在,为了使该陈述不那么抽象,让我们说它们移动了根 - 所以它不再是1-JAN-0001
,它可能是1-JAN-1001
。
这会导致一些问题。这就是如何在COBOL中解决Y2K错误,所以当2040
为很多商店而来时,他们将不得不再次更改滚动日期,或者扩展价值。
在他们的情况下,扩展值只是意味着使用4位数的年份,但在那些MF程序中并不总是那么简单,因为数据并不总是存储在数据库中,很多时候它都在VSAM文件中什么的。
所以,这就是我认为会发生的事情,因为计算继续变得更大更快(但更小......嗯)你会发现他们只会将值从Int64
扩展到{{1}并将根留在原处。这将是我能想到的零负面影响,因此这将是最安全的方法。