CheckHebrewYearValue() private method

private CheckHebrewYearValue ( int y, int era, String varName ) : void
y int
era int
varName String
return void
Ejemplo n.º 1
0
        /// <summary>返回与指定 <see cref="T:System.DateTime" /> 相距指定年数的 <see cref="T:System.DateTime" />。</summary>
        /// <returns>将指定年数添加到指定的 <see cref="T:System.DateTime" /> 中时得到的 <see cref="T:System.DateTime" />。</returns>
        /// <param name="time">
        /// <see cref="T:System.DateTime" />,将向其添加 <paramref name="years" />。</param>
        /// <param name="years">要添加的年数。</param>
        /// <exception cref="T:System.ArgumentException">结果 <see cref="T:System.DateTime" /> 超出了支持的范围。</exception>
        public override DateTime AddYears(DateTime time, int years)
        {
            int datePart = this.GetDatePart(time.Ticks, 0);
            int month    = this.GetDatePart(time.Ticks, 2);
            int day      = this.GetDatePart(time.Ticks, 3);
            int num      = datePart + years;

            HebrewCalendar.CheckHebrewYearValue(num, 0, "years");
            int monthsInYear = this.GetMonthsInYear(num, 0);

            if (month > monthsInYear)
            {
                month = monthsInYear;
            }
            int daysInMonth = this.GetDaysInMonth(num, month);

            if (day > daysInMonth)
            {
                day = daysInMonth;
            }
            long     ticks = this.ToDateTime(num, month, day, 0, 0, 0, 0).Ticks + time.Ticks % 864000000000L;
            DateTime supportedDateTime1 = this.MinSupportedDateTime;
            DateTime supportedDateTime2 = this.MaxSupportedDateTime;

            Calendar.CheckAddResult(ticks, supportedDateTime1, supportedDateTime2);
            return(new DateTime(ticks));
        }
Ejemplo n.º 2
0
        /// <summary>返回一个 <see cref="T:System.DateTime" />,它设置为指定纪元中的指定日期和时间。</summary>
        /// <returns>设置为当前纪元中的指定日期和时间的 <see cref="T:System.DateTime" />。</returns>
        /// <param name="year">表示年份的整数。</param>
        /// <param name="month">1 到 13 之间的一个整数,它表示月份。</param>
        /// <param name="day">1 到 30 之间的一个整数,它表示天。</param>
        /// <param name="hour">0 与 23 之间的一个整数,它表示小时。</param>
        /// <param name="minute">0 与 59 之间的一个整数,它表示分钟。</param>
        /// <param name="second">0 与 59 之间的一个整数,它表示秒。</param>
        /// <param name="millisecond">0 与 999 之间的一个整数,它表示毫秒。</param>
        /// <param name="era">表示纪元的整数。指定 <see cref="F:System.Globalization.HebrewCalendar.HebrewEra" /> 或 HebrewCalendar.Eras[Calendar.CurrentEra]。</param>
        /// <exception cref="T:System.ArgumentOutOfRangeException">
        /// <paramref name="year" />、<paramref name="month" />、<paramref name="day" /> 或 <paramref name="era" /> 超出了当前 <see cref="T:System.Globalization.HebrewCalendar" /> 对象支持的范围。- 或 -<paramref name="hour" /> 小于 0 或大于 23。- 或 -<paramref name="minute" /> 小于 0 或大于 59。- 或 -<paramref name="second" /> 小于 0 或大于 59。- 或 -<paramref name="millisecond" /> 小于 0 或大于 999。</exception>
        public override DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int era)
        {
            HebrewCalendar.CheckHebrewYearValue(year, era, "year");
            this.CheckHebrewMonthValue(year, month, era);
            this.CheckHebrewDayValue(year, month, day, era);
            DateTime gregorian = HebrewCalendar.HebrewToGregorian(year, month, day, hour, minute, second, millisecond);

            HebrewCalendar.CheckTicksRange(gregorian.Ticks);
            return(gregorian);
        }
Ejemplo n.º 3
0
 /// <summary>确定指定纪元中的指定年份是否为闰年。</summary>
 /// <returns>如果指定的年是闰年,则为 true;否则为 false。</returns>
 /// <param name="year">表示年份的整数。</param>
 /// <param name="era">表示纪元的整数。指定 <see cref="F:System.Globalization.HebrewCalendar.HebrewEra" /> 或 HebrewCalendar.Eras[Calendar.CurrentEra]。</param>
 /// <exception cref="T:System.ArgumentOutOfRangeException">
 /// <paramref name="year" /> 或 <paramref name="era" /> 超出了此日历支持的范围。</exception>
 public override bool IsLeapYear(int year, int era)
 {
     HebrewCalendar.CheckHebrewYearValue(year, era, "year");
     return((7L * (long)year + 1L) % 19L < 7L);
 }
Ejemplo n.º 4
0
 internal static int GetHebrewYearType(int year, int era)
 {
     HebrewCalendar.CheckHebrewYearValue(year, era, "year");
     return(HebrewCalendar.HebrewTable[(year - 3760 - 1583) * 2 + 1]);
 }