calendarMapWith method

Map calendarMapWith(
  1. DateTime date
)

根据传入data生成日历数据

Implementation

Map calendarMapWith(DateTime date) {
  Map monthDic = {};
  List dateArr = [];

  //如果这个月的第一天不是星期一,需要在前面补充天数
  DateTime firstDayOfMonth = getFirstDayOfMonth(date);
  if (firstDayOfMonth.weekday != 1) {
    int weekGap = firstDayOfMonth.weekday - 1;
    if (weekGap < 0) weekGap += 7;
    for (int i = 0; i < weekGap; i++) {
      DateTime theDate =
          firstDayOfMonth.add(Duration(days: -weekGap + i));
      WHUCalendarItem item = WHUCalendarItem();
      item.dateStr = PWSDateTimeService.stringFromDate(theDate, 'yyyy-MM-dd');
      item.day = -theDate.day;
      // lunarForSolarYear(item, theDate);
      dateArr.add(item);
    }
  }
  //将本月的所有天数变为文本
  monthDic['monthStr'] = PWSDateTimeService.stringFromDate(date, 'yyyy年MM月');
  int days = getDaysInMonth(date.year, date.month);
  for (int i = 0; i < days; i++) {
    WHUCalendarItem item = WHUCalendarItem();
    DateTime theDate = firstDayOfMonth.add(Duration(days: i));
    item.dateStr = PWSDateTimeService.stringFromDate(theDate, 'yyyy-MM-dd');
    item.day = theDate.day;
    // lunarForSolarYear(item, theDate);
    dateArr.add(item);
  }

  //如果结尾不是星期天需要在末尾补充天数

  DateTime lastDayOfMonth = getLastDayOfMonth(date);
  if (lastDayOfMonth.weekday != 7) {
    int weekGap = 8 - lastDayOfMonth.weekday;
    for (int i = 1; i < weekGap; i++) {
      DateTime theDate = firstDayOfMonth.add(Duration(days: i));
      WHUCalendarItem item = WHUCalendarItem();
      item.dateStr = PWSDateTimeService.stringFromDate(theDate, 'yyyy-MM-dd');
      item.day = -i;
      // lunarForSolarYear(item, theDate);
      dateArr.add(item);
    }
  }
  monthDic['dataArr'] = dateArr;
  return monthDic;
}