calculateMaxWeeksNumberMonthly static method
Implementation
static int calculateMaxWeeksNumberMonthly(
DateTime startDate, DateTime endDate) {
final int monthsNumber = calculateMonthsDifference(startDate, endDate);
final List<int> weeksNumbersMonthly = <int>[];
if (monthsNumber == 0) {
return _calculateWeeksNumber(startDate, endDate);
} else {
weeksNumbersMonthly
.add(_calculateWeeksNumber(startDate, getLastDayOfMonth(startDate)));
DateTime firstDateOfMonth = getFirstDayOfMonth(startDate);
for (int i = 1; i <= monthsNumber - 2; i++) {
firstDateOfMonth = firstDateOfMonth.add(const Duration(days: 31));
weeksNumbersMonthly.add(_calculateWeeksNumber(
firstDateOfMonth, getLastDayOfMonth(firstDateOfMonth)));
}
weeksNumbersMonthly
.add(_calculateWeeksNumber(getFirstDayOfMonth(endDate), endDate));
weeksNumbersMonthly.sort((int a, int b) => b.compareTo(a));
return weeksNumbersMonthly[0];
}
}