getWeeksNumbersInMonth method

List<int> getWeeksNumbersInMonth(
  1. StartingDayOfWeek startingDayOfWeek,
  2. DateTime focusedDay
)

Gets the week numbers for a month

Implementation

List<int> getWeeksNumbersInMonth(StartingDayOfWeek startingDayOfWeek, DateTime focusedDay) {
  final int startingDayOfWeekInt = startingDayOfWeekToInt(startingDayOfWeek);

  final DateTime startOfMonthDate = DateTime(year, month);
  final DateTime endOfMonthDate =
      DateTime(year, month).endOfMonth._firstDayOfWeek(startingDayOfWeekInt).add(const Duration(days: 6));
  final int monthTotal = endOfMonthDate.difference(startOfMonthDate).inDays;

  final List<DateTime> weekNumbers = <DateTime>[];
  for (int i = 0; i < monthTotal; i = i + 7) {
    weekNumbers.add(startOfMonthDate.add(Duration(days: i))._firstDayOfWeek(startingDayOfWeekInt));
  }

  final List<int> weeks = <int>[];
  for (final DateTime week in weekNumbers) {
    final int weekNum = _getWeekNumber(week, startingDayOfWeekInt);
    weeks.add(weekNum);
  }
  return weeks;
}