// ---------------------------------------------------------------------- public static int GetDaysInMonth(YearMonth month, YearMonth yearBaseMonth, FiscalQuarterGrouping quarterGrouping) { int diffMonthCount = month - yearBaseMonth; if (diffMonthCount < 0) { diffMonthCount = TimeSpec.MonthsPerYear + diffMonthCount; } return(((diffMonthCount + (int)quarterGrouping + 1) % TimeSpec.MonthsPerQuarter) == 0 ? TimeSpec.FiscalDaysPerLongMonth : TimeSpec.FiscalDaysPerShortMonth); } // GetDaysInMonth
} // GetYear // ---------------------------------------------------------------------- public static DateTime GetStartOfMonth(int year, YearMonth month, YearMonth yearBaseMonth, DayOfWeek yearStartDay, FiscalYearAlignment yearAlignment, FiscalQuarterGrouping quarterGrouping) { int diffMonthCount = month - yearBaseMonth; if (diffMonthCount < 0) { year--; diffMonthCount = TimeSpec.MonthsPerYear + diffMonthCount; } DateTime startOfYear = GetStartOfYear(year, yearBaseMonth, yearStartDay, yearAlignment); int fiveWeekMonthCount = (diffMonthCount + (int)quarterGrouping) / TimeSpec.MonthsPerQuarter; return(startOfYear.AddDays( (diffMonthCount * TimeSpec.FiscalDaysPerShortMonth) + (fiveWeekMonthCount * TimeSpec.DaysPerWeek))); } // GetStartOfMonth