Смоделируйте желаемый вывод в виде трехмерного массива.
private static final int DAYS_IN_WEEK = 7;
private static final int WEEKS_IN_MONTH = 5;
private static final int MONTHS_IN_YEAR = 12;
Integer dayNumber[DAYS_IN_WEEK][WEEKS_IN_MONTH][MONTHS_IN_YEAR];
. Выделите его и заполните его, используя стандартные методы Calendar, которые дают вам индексы, а затем выполните итерации по порядку в главном ряду, чтобы получить вывод..