У меня возникли проблемы, представляющие персидскую (Solar хиджры календарь) даты как DateTime
в C#, в частности, в определенные дни отдельные месяцы, например, 31/04, где в григорианском календаре такая дата не имеет смысла:Можно ли представить не gregorian даты как DateTime в .NET?
System.Globalization.PersianCalendar p = new System.Globalization.PersianCalendar();
DateTime date = new DateTime(2013,7,22);
int year = p.GetYear(date);
int month = p.GetMonth(date);
int day = p.GetDayOfMonth(date);
DateTime d1 = new DateTime(year, month, day);
Приведенный выше код приведет к ArgumentOutOfRangeException
говоря: Year, Month, and Day parameters describe an un-representable DateTime.
который, как ожидается.
Как я могу представить персидские даты как DateTime
s в .NET с учетом дат счетов, таких как 30/02 и 31/04?
Я просто догадываюсь, но эти даты по-прежнему соответствуют датам в gregorian календаре. Вероятно, вам придется представлять их в gregorian календаре в DateTime и делать конверсию в и из любой точки. Я не знаю, поддерживается ли это в Noda-Time, но вы проверили его? –
Вы имеете в виду, что мне придется жить с представлением всех дат как григорианских дат, а затем для написания некоторого метода расширения для преобразования их в строки (это то, что я делаю сейчас)? Также что такое Noda-Time? –