Beispiel #1
0
 /// <summary>确定指定纪元中的指定年份是否为闰年。</summary>
 /// <returns>如果指定的年是闰年,则为 true;否则为 false。</returns>
 /// <param name="year">1 到 9378 之间的一个整数,用于表示年。</param>
 /// <param name="era">整数 0 或 1,用于表示纪元。</param>
 /// <exception cref="T:System.ArgumentOutOfRangeException">
 /// <paramref name="year" /> 或 <paramref name="era" /> 超出了此日历支持的范围。</exception>
 public override bool IsLeapYear(int year, int era)
 {
     PersianCalendar.CheckYearRange(year, era);
     if (year == 9378)
     {
         return(false);
     }
     return(this.GetAbsoluteDatePersian(year + 1, 1, 1) - this.GetAbsoluteDatePersian(year, 1, 1) == 366L);
 }
Beispiel #2
0
 /// <summary>返回指定纪元中指定年份的天数。</summary>
 /// <returns>指定纪元年份中的天数。天数在平年中为 365,在闰年中为 366。</returns>
 /// <param name="year">1 到 9378 之间的一个整数,用于表示年。</param>
 /// <param name="era">整数 0 或 1,用于表示纪元。</param>
 /// <exception cref="T:System.ArgumentOutOfRangeException">
 /// <paramref name="year" /> 或 <paramref name="era" /> 超出了此日历支持的范围。</exception>
 public override int GetDaysInYear(int year, int era)
 {
     PersianCalendar.CheckYearRange(year, era);
     if (year == 9378)
     {
         return(PersianCalendar.DaysToMonth[9] + 13);
     }
     return(!this.IsLeapYear(year, 0) ? 365 : 366);
 }
Beispiel #3
0
 internal static void CheckYearMonthRange(int year, int month, int era)
 {
     PersianCalendar.CheckYearRange(year, era);
     if (year == 9378 && month > 10)
     {
         throw new ArgumentOutOfRangeException("month", string.Format((IFormatProvider)CultureInfo.CurrentCulture, Environment.GetResourceString("ArgumentOutOfRange_Range"), (object)1, (object)10));
     }
     if (month < 1 || month > 12)
     {
         throw new ArgumentOutOfRangeException("month", Environment.GetResourceString("ArgumentOutOfRange_Month"));
     }
 }
Beispiel #4
0
 /// <summary>返回指定纪元年份的闰月。</summary>
 /// <returns>返回值始终为 0。</returns>
 /// <param name="year">1 到 9378 之间的一个整数,用于表示要转换的年份。</param>
 /// <param name="era">整数 0 或 1,用于表示纪元。</param>
 /// <exception cref="T:System.ArgumentOutOfRangeException">
 /// <paramref name="year" /> 或 <paramref name="era" /> 超出了此日历支持的范围。</exception>
 public override int GetLeapMonth(int year, int era)
 {
     PersianCalendar.CheckYearRange(year, era);
     return(0);
 }
Beispiel #5
0
 /// <summary>返回指定纪元中指定年份中的月数。</summary>
 /// <returns>如果 <paramref name="year" /> 参数为 9378,则返回 10;否则始终返回 12。</returns>
 /// <param name="year">1 到 9378 之间的一个整数,用于表示年。</param>
 /// <param name="era">整数 0 或 1,用于表示纪元。</param>
 /// <exception cref="T:System.ArgumentOutOfRangeException">
 /// <paramref name="year" /> 或 <paramref name="era" /> 超出了此日历支持的范围。</exception>
 public override int GetMonthsInYear(int year, int era)
 {
     PersianCalendar.CheckYearRange(year, era);
     return(year == 9378 ? 10 : 12);
 }