internal virtual int GetDatePart(DateTime time, int part) { int HijriYear = 0; int HijriMonth = 0; int HijriDay = 0; UmAlQuraCalendar.CheckTicksRange(time.Ticks); UmAlQuraCalendar.ConvertGregorianToHijri(time, ref HijriYear, ref HijriMonth, ref HijriDay); if (part == 0) { return(HijriYear); } if (part == 2) { return(HijriMonth); } if (part == 3) { return(HijriDay); } if (part == 1) { return((int)(UmAlQuraCalendar.GetAbsoluteDateUmAlQura(HijriYear, HijriMonth, HijriDay) - UmAlQuraCalendar.GetAbsoluteDateUmAlQura(HijriYear, 1, 1) + 1L)); } throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_DateTimeParsing")); }
/// <summary>计算指定日期出现在哪个纪元。</summary> /// <returns>总是返回 <see cref="F:System.Globalization.UmAlQuraCalendar.UmAlQuraEra" /> 值。</returns> /// <param name="time">要读取的数据类型。</param> /// <exception cref="T:System.ArgumentOutOfRangeException"> /// <paramref name="time" /> 超出了此日历支持的范围。</exception> public override int GetEra(DateTime time) { UmAlQuraCalendar.CheckTicksRange(time.Ticks); return(1); }