Тема этого вопроса - расчеты даты и времени.Что происходит, когда клещ переполняется?
.NET, как и многие другие платформы, в значительной степени полагается на некоторую форму минимального дискретного представления времени, например DateTime.Ticks
. Тик представляет собой тип Int64
с максимальным значением примерно 9 * 10 .
Предполагая, что часы .NET начали тикать с 1-JAN-0001, и после моих сырых расчетов потребуется около 30 000 лет для галочки до Int64.MaxValue
.
Вопрос: что было бы общим подходом к борьбе с таким переполнением, должно ли оно произойти в следующем году?
Это в четыре раза хуже, чем вы думаете, верхние два бита в базовом Int64 используются для хранения DateTime.Kind. Ясно, что вы не хотите, чтобы вокруг, когда проблема Y10K попадает. И, не допуская серьезных медицинских прорывов и серьезной перестройки в индустрии развлечений, вас не будет. –
@ У вас есть какие-то статьи, на которые я могу ссылаться, что вы бы рекомендовали лучше объяснить, как хранятся даты и время (я заметил, что вы говорили о двух верхних битах для Kind), а затем ловушка решения Y2K? –
Просто посмотрите на исходный источник. –