firstDayOfFirstWeek method
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
DateTime firstDayOfFirstWeek(int year, {int firstWeekday = DateTime.monday}) {
assert(firstWeekday > 0 && firstWeekday < 8);
final startOfYear = DateTime(year);
return isWeekInYear(startOfYear, year, firstWeekday)
? firstDayOfWeek(startOfYear, firstWeekday: firstWeekday)
: firstDayOfNextWeek(startOfYear, firstWeekday: firstWeekday);
}