Hijri日历并将所选日期转换为公历日历值

时间:2014-07-03 09:03:09

标签: c# wpf

我正在开发基于Windows的应用程序。在这里,我想使用Hijiri日历。 我喜欢将日历视为日期选择器控件,所选日期也希望在格里高利日历日期中获得。
无法找到日期转换的成功转换方法。

1 个答案:

答案 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更加困难,但更容易正确使用其余代码。这取决于你想要做什么。