calendarMapWith method
根据传入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;
}