internal virtual int GetDatePart(DateTime time, int part) {
int UmAlQuraYear=0; // UmAlQura year
int UmAlQuraMonth=0; // UmAlQura month
int UmAlQuraDay=0; // UmAlQura day
long ticks = time.Ticks;
CheckTicksRange(ticks);
ConvertGregorianToHijri(time, ref UmAlQuraYear, ref UmAlQuraMonth, ref UmAlQuraDay);
if (part == DatePartYear)
return (UmAlQuraYear);
if (part == DatePartMonth)
return (UmAlQuraMonth);
if (part == DatePartDay)
return (UmAlQuraDay);
if (part == DatePartDayOfYear)
return (int)(GetAbsoluteDateUmAlQura(UmAlQuraYear, UmAlQuraMonth, UmAlQuraDay) - GetAbsoluteDateUmAlQura(UmAlQuraYear, 1, 1) + 1);
// Incorrect part value.
throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_DateTimeParsing"));
}