У меня есть строковое значение, которое содержит либо дату на иврите, либо дату по григорианскому календарю. Как я могу определить, является ли это григорианским или ивритом в С#?
Как я могу определить, является ли строка еврейской или григорианской датой?
comment
Можете ли вы опубликовать образцы для строк даты?
- person Oded   schedule 09.05.2010
comment
В каких форматах? Если это просто недавние даты, не могли бы вы просто проверить, больше ли год, скажем, 3000?
- person svick   schedule 09.05.2010
comment
@svick - Это не сработает, так как год будет выглядеть как תשסח, а не в виде числа
- person Rubys   schedule 10.05.2010
Ответы (1)
Вы можете использовать метод TryParse
объекта DateTime
— если он не удался с культурой иврита вы можете попробовать с григорианским календарем:
DateTime myDate = DateTime.Now;
CultureInfo culture = CultureInfo.CreateSpecificCulture("he-IL");
culture.DateTimeFormat.Calendar = new HebrewCalendar(); // To be sure
DateTimeStyles styles = DateTimeStyles.None;
if (DateTime.TryParse("כ\"ה/אייר/תש\"ע", culture, styles, out myDate))
{
// Hebrew date
}
culture = CultureInfo.CreateSpecificCulture("en-US");
if (DateTime.TryParse("2/30/2010", culture, styles, out myDate))
{
// US date
}
person
Oded
schedule
09.05.2010
Вы действительно пробовали это? DateTime.Now не является методом. Культура he-IL также не использует JewishCalendar.
- person Hans Passant; 09.05.2010
@Hans Passant - Спасибо, что указали на мою ошибку с
DateTime.Now
. Это было исправлено (и я добавил HebrewCalendar
). Код в том виде, в каком он есть, теперь работает.
- person Oded; 09.05.2010