firstDayOfFirstWeek static method

DateTime firstDayOfFirstWeek(
  1. int year, {
  2. int? firstWeekday,
})

Returns start of the first day of the first week in year.

For example: (2020, 4, 9, 15, 16) -> (2019, 12, 30, 0, 0, 0, 0).

You can define first weekday (Monday, Sunday or Saturday) with parameter firstWeekday. It should be one of the constant values DateTime.monday, ..., DateTime.sunday.

By default it's DateTime.monday.

See getWeekNumber.

Implementation

static DateTime firstDayOfFirstWeek(int year, {int? firstWeekday}) {
  assert(firstWeekday == null || firstWeekday > 0 && firstWeekday < 8);

  final startOfYear = DateTime(year);
  return isWeekInYear(startOfYear, year, firstWeekday)
      ? firstDayOfWeek(startOfYear, firstWeekday: firstWeekday)
      : firstDayOfNextWeek(startOfYear, firstWeekday: firstWeekday);
}