我想获得一年中的一周(在当前文化中),所以我这样做:
var week = CultureInfo.CurrentCulture.Calendar
.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay,
DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek);
当前文化为(波斯语)时,fa-IR
日历为24(波斯语为第 13 周)GregorianCalendar
week
但如果我用 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();
但没有文化。
但我需要这种文化,因为我认为检查日历是否是公历然后使用波斯语不好,如果您有更好的想法或对此有所了解,请告诉我。
(据我所知,公历很旧,如果我没记错的话,上面发生的事情(使用 Gregorian )是错误的。它应该类似于波斯历。)