initCalendarForWeekView static method
获取本周的7个item
Implementation
static List<DateModel> initCalendarForWeekView(
int year, int month, DateTime currentDate, int weekStart,
{required DateModel minSelectDate,
required DateModel maxSelectDate,
required Map<DateModel, dynamic> extraDataMap,
int offset = 0}) {
List<DateModel> items = [];
int weekDay = currentDate.weekday + offset;
//计算本周的第一天
DateTime firstDayOfWeek = currentDate.add(Duration(days: -weekDay));
for (int i = 1; i <= 7; i++) {
DateModel dateModel =
DateModel.fromDateTime(firstDayOfWeek.add(Duration(days: i)));
//判断是否在范围内
if (dateModel.getDateTime().isAfter(minSelectDate.getDateTime()) &&
dateModel.getDateTime().isBefore(maxSelectDate.getDateTime())) {
dateModel.isInRange = true;
} else {
dateModel.isInRange = false;
}
if (month == dateModel.month) {
dateModel.isCurrentMonth = true;
} else {
dateModel.isCurrentMonth = false;
}
//将自定义额外的数据,存储到相应的model中
if (extraDataMap.isNotEmpty == true) {
if (extraDataMap.containsKey(dateModel)) {
dateModel.extraData = extraDataMap[dateModel];
}
}
items.add(dateModel);
}
return items;
}