我正在开发基于Windows的应用程序。在这里,我想使用Hijiri日历。
我喜欢将日历视为日期选择器控件,所选日期也希望在格里高利日历日期中获得。
无法找到日期转换的成功转换方法。
答案 0 :(得分:2)
我对事物的UI方面一无所知(我不知道你正在使用哪个日期选择器,或者它是否支持替代日历),但是......如果你&# 39;有一个代表Hijri日期的DateTime
值,这在公历中总是有效的。您可以使用以下内容获取Hijri日历中的年/月/日值:
var calendar = new HijriCalendar();
var gregorian = ...; // The DateTime value
var hijriYear = calendar.GetYear(gregorian);
var hijriMonth = calendar.GetMonth(gregorian);
var hijriDay = calendar.GetDayOfMonth(gregorian);
或者,您可能需要考虑使用我的Noda Time项目,其中LocalDate
值知道它所在的日历:
// Equivalent to HijriCalendar
CalendarSystem hijriCalendar = CalendarSystem.GetIslamicCalendar
(IslamicLeapYearPattern.Base16, IslamicEpoch.Astronomical)
LocalDate gregorian = ...; // Wherever
LocalDate hijri = gregorian.WithCalendar(hijriCalendar);
您可能会发现在UI端使用Noda Time更加困难,但更容易正确使用其余代码。这取决于你想要做什么。