generateCalendar<T> static method

Year<T> generateCalendar<T>(
  1. int year
)

Implementation

static Year<T> generateCalendar<T>(int year) {
  List<Month<T>> calendar = [];

  for (int month = 1; month <= 12; month++) {
    final daysInMonth = DateTime(year, month + 1, 0).day;
    final monthName = DateFormat.MMMM().format(DateTime(year, month, 1));

    List<Map<int, String>> monthCalendar = [];
    List<T> monthData = [];

    for (int day = 1; day <= daysInMonth; day++) {
      final weekdayName =
          DateFormat.EEEE().format(DateTime(year, month, day));

      monthCalendar.add({day: weekdayName});

      T data = _generateDataForDay<T>(year, month, day);
      monthData.add(data);
    }

    Month<T> monthObject = Month<T>(
      name: monthName,
      year: year,
      days: monthCalendar,
      data: monthData,
    );

    calendar.add(monthObject);
  }

  return Year<T>(year: year, months: calendar);
}