Я хочу получить неделю года (в текущей культуре), поэтому я делаю:
var week = CultureInfo.CurrentCulture.Calendar
.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay,
DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek);
Когда текущая культура fa-IR
(персидская), календарь равен GregorianCalendar
и week
значение равно 24 (на персидском языке мы на 13-й неделе)
, но если я протестирую его с PersianCalendar, как показано ниже:
var calendar = new PersianCalendar();
var week = calendar
.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay,
DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek);
, это даст верный ответ (13).
Я проверил, что календарь культуры - персидский:
var persianCultures = CultureInfo.GetCultures(CultureTypes.AllCultures)
.Where(x => x.Calendar is PersianCalendar).ToList();
, но нет культуры.
но мне нужна эта культура, потому что я думаю, что нехорошо проверять, является ли календарь григорианскимзатем используйте персидский, если у вас есть идея или вы знаете что-нибудь об этом, пожалуйста, дайте мне знать.
(Как я знаю, григорианский календарь стар, и если я не ошибаюсь, то, что произошло выше (с григорианским),неправильно. должно быть похоже на персидский календарь.)