totalWeekDayOrWeekEnd static method
int
totalWeekDayOrWeekEnd(
- int year, {
- int month = 1,
- int day = 1,
- TypeWeek typeWeek = TypeWeek.isWeekday,
- TypeDateTotal typeDateTotal = TypeDateTotal.month,
Get total WeekDay or WeekEnd depend of type.
const year = 2021;
const month = 1;
const day = 1;
final totalWeekend2021 = GlobalFunction.totalWeekDayOrWeekEnd( year, month:month, day:day, typeDateTotal: TypeDateTotal.year typeWeek: TypeWeek.isWeekend );
print(totalWeekend2021) // 104
https://coda.io/@hales/simple-online-calculator-for-dates-and-times/how-many-weekends-in-a-year-31
Implementation
static int totalWeekDayOrWeekEnd(
int year, {
int month = 1,
int day = 1,
TypeWeek typeWeek = TypeWeek.isWeekday,
TypeDateTotal typeDateTotal = TypeDateTotal.month,
}) {
final totalDay = (typeDateTotal == TypeDateTotal.month)
? totalDaysOfMonth(year: year, month: month)
: totalDayInRangeYear(fromYear: year, toYear: year);
var weekDay = 0;
var weekEnd = 0;
final tempDateTime = DateTime(year, month, day);
for (var i = day; i <= totalDay; i++) {
final date = DateTime(tempDateTime.year, tempDateTime.month, i);
if (date.weekday == DateTime.saturday ||
date.weekday == DateTime.sunday) {
weekEnd++;
// print('weekEnd || $date');
} else {
weekDay++;
// print('weekDay || $date');
}
}
final result = (typeWeek == TypeWeek.isWeekend) ? weekEnd : weekDay;
return result;
}