getISOWeek property
int
getISOWeek
Get the ISO week index
Implementation
int get getISOWeek {
final woy = ((_ordinalDate - weekday + 10) ~/ 7);
// If the week number equals zero, it means that the given date belongs to the preceding (week-based) year.
if (woy == 0) {
// The 28th of December is always in the last week of the year
return DateTime(year - 1, 12, 28).getISOWeek;
}
// If the week number equals 53, one must check that the date is not actually in week 1 of the following year
if (woy == 53 &&
DateTime(year, 1, 1).weekday != DateTime.thursday &&
DateTime(year, 12, 31).weekday != DateTime.thursday) {
return 1;
}
return woy;
}