Re[4]: Excel 29.02.1900 и .NET/C#
От: fortnum  
Дата: 01.07.22 16:39
Оценка:
Здравствуйте, Xander Zerge, Вы писали:

F>>Для юлианских дат нужны отдельные какие-то алгоритмы форматирования строк, чтобы выводить даты по тем же строкам форматирования, что и григорианские? Или там какой-то общий всё же алгоритм? Мн кажется, что должен быть общий, но пока еще не вникал.

XZ>Да, нужен алгоритм, который из григорианской DateTime найдёт юлианские год, день и месяц и выведет в строку. Как уже было написано, такого алгоритма во фреймворке нет, потому что нет культуры, к которой его можно было бы привязать, а в форматирование даты можно передавать культуру, но не сам календарь. Можешь сделать такой метод-расширение.

Пока еще не въехал в тему, может и глупость скажу, но ведь у меня уже имеются юлианские и год, и месяц и день (29.02.1900), и алгоритм есть, JulianCalendar. То есть сами числа найти не вопрос. Но со строками... как не изобретать велосипед именно со строками форматирования? Разбор строк форматирования с нуля городить самому? Как вывести эти юлианские год, месяц и день (и время, кстати говоря) в стандартные строки форматирования?

Что-то не улыбается самому все эти 'g', 'dd', 'yy', 'yyyy' и прочие 'dddd', не говоря о стандартных, еще и с привязкой к културе парсить, чтобы ради только одного, вывести не существующую в григорианском календаре дату... которая законно есть в юлианском... которого не существует... потому что есть григорианский... который не понимает эту 29.02.1900. Что-то ерунда какая-то, или чего я не понимаю?

Console.WriteLine(dateTime.ToString("-= yy =- | g | mm:MM'/'dd'/'yyyy -- %h - dddd.ff"));

// -= 00 =- | н. э. | 00:03/13/1900 -- 12 - вторник.00
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.