Hallo zusammen!
Ich bin gerade dabei einen Jahreskalender in Java auszugeben (wie bei dem Programm cal in Unix).
Soweit so gut - die Berechnung des ersten Monatstags sowie die Einrückung in der Formatierung funktionieren also mal für einen Monat.
Nun würde ich aber gerne alle Monate in vier Blöcken zu je drei Monaten (ähnlich Jahreszeiten) ausgeben damit das ganze in etwa so aussieht wie hier im zweiten Beispiel.
Wie bekomm ich das denn am elegantesten hin?
Schon mal danke im voraus
Ich bin gerade dabei einen Jahreskalender in Java auszugeben (wie bei dem Programm cal in Unix).
Java:
public class cal {
public static void main( String[] arg) {
int fullYear = Integer.parseInt(arg[0]);
int month = 1;
final int day = 1;
int langerMonat = 31;
int kurzerMonat = 30; // hier bin ich mir nicht sicher ob es da eine elegantere Methode gibt
/* Berücksichtugung von Schaltjahren*/
int feb = 28;
if ((fullYear % 4 == 0 && fullYear % 100 != 0) || fullYear % 400 == 0)
feb = 29;
/* Berechnung des ersten Wochentags im Monat */
int temp = fullYear;
if(month < 3) {
month += 12;
temp--;
}
int year = temp%100;
int cent = temp/100;
int weekday = (day + 26*(month + 1)/10 + 5*year/4 + cent/4 + 5*cent - 1)%7;
/* Ausgabe des Kalenders */
String weeks = "Su Mo Tu We Th Fr Sa ";
System.out.print("\n" + " " + fullYear);
System.out.println("\n" + " January");
System.out.println(weeks);
/* Leerzeichen bis zum ersten Tag im Monat */
for(int i = 0; i < weekday; i++) {
System.out.print(" ");
}
for (int i = 1; i <= langerMonat; i++) {
/* solange Datum einstellig -> " " vorher und nachher */
if (i < 10) {
System.out.print(" " + i + " ");
}
/* sobald Datum zweistellig -> " " nur noch nachher */
if (i >= 10) {
System.out.print(i + " ");
}
/* nach 7 ziffern pro Zeile -> Zeilenumbruch */
if (((i + weekday) % 7) == 0) {
System.out.println();
}
}
System.out.print("\n");
}
}
Soweit so gut - die Berechnung des ersten Monatstags sowie die Einrückung in der Formatierung funktionieren also mal für einen Monat.
Nun würde ich aber gerne alle Monate in vier Blöcken zu je drei Monaten (ähnlich Jahreszeiten) ausgeben damit das ganze in etwa so aussieht wie hier im zweiten Beispiel.
Wie bekomm ich das denn am elegantesten hin?
Schon mal danke im voraus