System.Globalization.CCEastAsianLunisolarCalendar.IsLeapMonth C# (CSharp) Method

IsLeapMonth() public static method

public static IsLeapMonth ( int gyear, int month ) : bool
gyear int
month int
return bool
	public static bool IsLeapMonth (int gyear, int month)
	{
		int goldenNumber = gyear % 19;

		bool chu = false;
		bool leap = false;
		double s = 0;
		for (int y = 0; y < goldenNumber; y++) {
			for (int l = 0, m = 1; m <= month; m++) {
				if (leap) {
					l += 30;
					leap = false;
					if (y == goldenNumber && m == month)
						return true;
				} else {
					l += chu ? 30 : 29;
					chu = !chu;
					s += 30.44;
					if (s - l > 29)
						leap = true;
				}
			}
		}
		return false;
	}

Usage Example

        public override bool IsLeapDay(int year, int month, int day, int era)
        {
            int gregorianYear = M_CheckYMDEG(year, month, day, ref era);

            // every day in LeapMonth is a LeapDay.
            return(CCEastAsianLunisolarCalendar.IsLeapMonth(gregorianYear, month));
        }
All Usage Examples Of System.Globalization.CCEastAsianLunisolarCalendar::IsLeapMonth