Сообщение Re: Excel 29.02.1900 и .NET/C# от 01.07.2022 13:18
Изменено 01.07.2022 13:31 Xander Zerge
Re: Excel 29.02.1900 и .NET/C#
Здравствуйте, fortnum, Вы писали:
F>ЗЫ. Пока вышел из положения заменой данной конкретной даты на 1896 г. (законно високосный по григорианскому) с последующим двойным Replace'ом по строке '1896' на '1900' и '96' на '00'
Но может быть есть более кошерный способ?
Нет, потому что физически дата представляется длинным целым числом 100-наносекундных тиков после полуночи 1 января 1 года по Грегорианскому календарю, и после последнего тика 1900.02.28 сразу идёт первый тик 1900.03.01, поэтому "1900-02-29" DateTime-мом в принципе быть не может, только текстом.
F>ЗЫ. Пока вышел из положения заменой данной конкретной даты на 1896 г. (законно високосный по григорианскому) с последующим двойным Replace'ом по строке '1896' на '1900' и '96' на '00'
Нет, потому что физически дата представляется длинным целым числом 100-наносекундных тиков после полуночи 1 января 1 года по Грегорианскому календарю, и после последнего тика 1900.02.28 сразу идёт первый тик 1900.03.01, поэтому "1900-02-29" DateTime-мом в принципе быть не может, только текстом.
Re: Excel 29.02.1900 и .NET/C#
Здравствуйте, fortnum, Вы писали:
F>ЗЫ. Пока вышел из положения заменой данной конкретной даты на 1896 г. (законно високосный по григорианскому) с последующим двойным Replace'ом по строке '1896' на '1900' и '96' на '00'
Но может быть есть более кошерный способ?
Нет, потому что физически дата представляется длинным целым числом 100-наносекундных тиков после полуночи 1 января 1 года по Григорианскому календарю, и после последнего тика 1900.02.28 сразу идёт первый тик 1900.03.01, поэтому "1900-02-29" DateTime-ом в принципе быть не может, только текстом.
F>ЗЫ. Пока вышел из положения заменой данной конкретной даты на 1896 г. (законно високосный по григорианскому) с последующим двойным Replace'ом по строке '1896' на '1900' и '96' на '00'
Нет, потому что физически дата представляется длинным целым числом 100-наносекундных тиков после полуночи 1 января 1 года по Григорианскому календарю, и после последнего тика 1900.02.28 сразу идёт первый тик 1900.03.01, поэтому "1900-02-29" DateTime-ом в принципе быть не может, только текстом.