在某些文化中,如何获得一年中的星期?

问题描述

| 我想获得一年的一周(以当前的文化),所以我这样做:
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,DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek);
它给出了一个正确的答案(13)。 我检查过文化的日历是波斯语:
var persianCultures = CultureInfo.GetCultures(CultureTypes.AllCultures)
                       .Where(x => x.Calendar is PersianCalendar).ToList();
但是没有文化。 但是我需要这种文化,因为我认为检查日历是否为公历然后使用波斯语不好,如果您有更好的主意或对此有所了解,请告诉我。 (据我所知,公历是古老的,如果我没记错的话,上面(使用Gregorian)发生的事情是错误的。它应该类似于波斯日历。)     

解决方法

        http://www.codeproject.com/KB/dotnet/PersianCulture.aspx 总而言之,这是.NET框架的局限性,但是可以通过反射来解决。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...