package javacodebook.core.calpage; import java.util.Calendar; public class CalPage { private int year, month; private String []mStr = { "Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez" }; public CalPage(int year, int month) { this.year = year; this.month = month; } public void print() { int firstDay; // Der Wochtag des Ersten Monatstages int week; // Die Kalenderwoche int days; // Die Anzahl der Tage des Monats. // Objekt der Klasse Calendar erzeugen und mit Daten initialisieren Calendar cal = Calendar.getInstance(); cal.set(year, month, 1); // Den ersten Wochentag, die Kalenderwoche und die Anzahl der Tage // des Monats ermitteln firstDay = cal.get(Calendar.DAY_OF_WEEK); week = cal.get(Calendar.WEEK_OF_YEAR); days = cal.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println(" " + mStr[month] + " " + year); System.out.println(" KW Mo Di Mi Do Fr Sa So"); // Kalenderwoche ausgeben. Das Ganze bitte rechtsbündig. if (week < 10) System.out.print(" "); System.out.print(" " + week); // Im Dezember kann es passieren, dass die letzte Woche des Monat schon // die erste Kalenderwoche des neuen Jahres ist. week++; if (week > 50 && month == 0) week = 1; // Die ersten Tage sind noch aus dem Vormonat. Diese werden nicht // dargestellt. for (int i=0; i<((firstDay+5)%7); i++) System.out.print(" "); // Und jetzt alle Tage des Monats darstellen. for (int i=1; i<=days; i++) { if (i<10) System.out.print(' '); System.out.print(" "+i); // Evtl. eine neue Zeile und damit eine neue Woche einleiten if ((firstDay+i+5)%7 == 0 && i