weekNumberInMonth property

  1. @useResult
int get weekNumberInMonth

Week number within the month (1-based). First partial week is 1.

Implementation

@useResult
int get weekNumberInMonth {
  final int dayOfMonth = day;
  final DateTime first = DateTime(year, month);
  final int firstWeekday = first.weekday;
  // weekday is Mon=1..Sun=7, so 8 - weekday gives remaining days in week 1
  final int daysInFirstWeek = 8 - firstWeekday;
  if (dayOfMonth <= daysInFirstWeek) return 1;
  return ((dayOfMonth - daysInFirstWeek - 1) / 7).floor() + 2;
}