Kalender programmieren, ich finde meinen Fehler nicht.

AkiHawasaki

Mitglied
Hallo, ich nehme gerade das Buch "Schrödinger programmiert Java. Das etwas andere Fachbuch" durch. Allerdings habe ich einen hänger. Aufgabenstellung lautet:
11858

Es ist eine Übung zu Schleifen. Mein Lösungsweg ist:
Code:
public class kalender {
    public static void main (String[]args){
        int monat=6;
        int starttag=2;

        if (monat>=0 && monat<=11 && starttag>=0 && starttag<=6) {
            int tage;
            switch (monat) {
                case 0:
                case 2:
                case 4:
                case 6:
                case 8:
                case 10:
                    tage = 31;
                    break;
                case 1:
                    tage = 28;
                    break;
                default:
                    tage = 30;
            }
            System.out.println("|Mo|Di|Mi|Do|Fr|Sa|So|");
            int wochen = (tage + starttag) > 35 ? 6 : 5;

            for (int woche = 1; woche <= wochen; woche++) {
                for (int tag = 1; tag <= 7; tag++) {
                    int datum = tag +(woche-1)*7 - starttag;
                    if (datum > 0 && datum < tage) {
                        System.out.println( "|"+ ((datum<10)?" ": " ")+datum);

                    } else {
                        System.out.println("|  ");
                    }
                }
                System.out.println("|");

            }
        }}}

allerdings liefert er mir in der Ausgabe alle Werte UNTEREINANDER und nicht wie es sein sollte. Wie auf dem Bild zu sehen ist sollte er eigentlich nach dem Sonntag in eine neue Zeile springen. Aber irgendwie springt er andauernd in eine neue Zeile. Warum?
 
K

kneitzel

Gast
Und noch eine kleine Anmerkung zu den Monaten:
Es ist nicht immer jeder zweite Tag, der 31 Tage hat. Das wechselt in der zweiten Jahreshälfte: Juli und August haben 31 Tage.
Also die Monate 0, 2, 4, 6, 7, 9 und 11 haben 31 Tage.
 

mrBrown

Super-Moderator
Mitarbeiter
:)
Kann jemand diese Satz (int datum = tag +(woche-1)*7 - starttag;)
für mich erklären


Das Rechnet aus, welchem Tag des Monats der Wochentag tag der Woche woche entspricht, wobei starttag der Index des ersten Tags des Monats ist.

Beispielhaft für heute: tag=2(=Dienstag), woche = 3(=dritte Woche), starttag = 2 (Monat startete Mittwoch = Index 2)

2 + (3 - 1) * 7 - 2 = 14
 

SamEna

Mitglied
Das Rechnet aus, welchem Tag des Monats der Wochentag tag der Woche woche entspricht, wobei starttag der Index des ersten Tags des Monats ist.

Beispielhaft für heute: tag=2(=Dienstag), woche = 3(=dritte Woche), starttag = 2 (Monat startete Mittwoch = Index 2)

2 + (3 - 1) * 7 - 2 = 14
Vielen Dank
aber warum Dienstag ist 2 und Mittwoch ist auch 2 (ich weiß dass 0 Montag ist)
 
Zuletzt bearbeitet:
X

Xyz1

Gast
Ich hätte das etwas anders gemacht:

Java:
String[][][] kal = new String[12][6][7];
for (int i = 0; i < 12; i++) {
    for (int j = 0; j < 6; j++) {
        for (int k = 0; k < 7; k++) {
            kal[i][j][k] = "  ";
        }
    }
}
Calendar jetzt = new GregorianCalendar();
Calendar anfang = new GregorianCalendar(jetzt.get(Calendar.YEAR), 0, 1);
for (int i = 0; i < 12; i++) {
    int monat = anfang.get(Calendar.MONTH);
    int wd = (anfang.get(Calendar.DAY_OF_WEEK) + 5) % 7;
    /*
    Amerika: erster Tag Sonntag, Sonntag==1, wir müssen 2 abziehen
     */
    while (anfang.get(Calendar.MONTH) == monat) {
        kal[monat][wd / 7][wd % 7] = String.format("%02d", anfang.get(Calendar.DAY_OF_MONTH));
        wd++;
        anfang.add(Calendar.DAY_OF_YEAR, 1);
    }
}
for (String[][] stringses : kal) {
    for (String[] strings : stringses) {
        System.out.println(Arrays.toString(strings));
    }
    System.out.println("");
}


Code:
[  , 01, 02, 03, 04, 05, 06]
[07, 08, 09, 10, 11, 12, 13]
[14, 15, 16, 17, 18, 19, 20]
[21, 22, 23, 24, 25, 26, 27]
[28, 29, 30, 31,   ,   ,   ]
[  ,   ,   ,   ,   ,   ,   ]

[  ,   ,   ,   , 01, 02, 03]
[04, 05, 06, 07, 08, 09, 10]
[11, 12, 13, 14, 15, 16, 17]
[18, 19, 20, 21, 22, 23, 24]
[25, 26, 27, 28,   ,   ,   ]
[  ,   ,   ,   ,   ,   ,   ]

[  ,   ,   ,   , 01, 02, 03]
[04, 05, 06, 07, 08, 09, 10]
[11, 12, 13, 14, 15, 16, 17]
[18, 19, 20, 21, 22, 23, 24]
[25, 26, 27, 28, 29, 30, 31]
[  ,   ,   ,   ,   ,   ,   ]

[01, 02, 03, 04, 05, 06, 07]
[08, 09, 10, 11, 12, 13, 14]
[15, 16, 17, 18, 19, 20, 21]
[22, 23, 24, 25, 26, 27, 28]
[29, 30,   ,   ,   ,   ,   ]
[  ,   ,   ,   ,   ,   ,   ]

[  ,   , 01, 02, 03, 04, 05]
[06, 07, 08, 09, 10, 11, 12]
[13, 14, 15, 16, 17, 18, 19]
[20, 21, 22, 23, 24, 25, 26]
[27, 28, 29, 30, 31,   ,   ]
[  ,   ,   ,   ,   ,   ,   ]

[  ,   ,   ,   ,   , 01, 02]
[03, 04, 05, 06, 07, 08, 09]
[10, 11, 12, 13, 14, 15, 16]
[17, 18, 19, 20, 21, 22, 23]
[24, 25, 26, 27, 28, 29, 30]
[  ,   ,   ,   ,   ,   ,   ]

[01, 02, 03, 04, 05, 06, 07]
[08, 09, 10, 11, 12, 13, 14]
[15, 16, 17, 18, 19, 20, 21]
[22, 23, 24, 25, 26, 27, 28]
[29, 30, 31,   ,   ,   ,   ]
[  ,   ,   ,   ,   ,   ,   ]

[  ,   ,   , 01, 02, 03, 04]
[05, 06, 07, 08, 09, 10, 11]
[12, 13, 14, 15, 16, 17, 18]
[19, 20, 21, 22, 23, 24, 25]
[26, 27, 28, 29, 30, 31,   ]
[  ,   ,   ,   ,   ,   ,   ]

[  ,   ,   ,   ,   ,   , 01]
[02, 03, 04, 05, 06, 07, 08]
[09, 10, 11, 12, 13, 14, 15]
[16, 17, 18, 19, 20, 21, 22]
[23, 24, 25, 26, 27, 28, 29]
[30,   ,   ,   ,   ,   ,   ]

[  , 01, 02, 03, 04, 05, 06]
[07, 08, 09, 10, 11, 12, 13]
[14, 15, 16, 17, 18, 19, 20]
[21, 22, 23, 24, 25, 26, 27]
[28, 29, 30, 31,   ,   ,   ]
[  ,   ,   ,   ,   ,   ,   ]

[  ,   ,   ,   , 01, 02, 03]
[04, 05, 06, 07, 08, 09, 10]
[11, 12, 13, 14, 15, 16, 17]
[18, 19, 20, 21, 22, 23, 24]
[25, 26, 27, 28, 29, 30,   ]
[  ,   ,   ,   ,   ,   ,   ]

[  ,   ,   ,   ,   ,   , 01]
[02, 03, 04, 05, 06, 07, 08]
[09, 10, 11, 12, 13, 14, 15]
[16, 17, 18, 19, 20, 21, 22]
[23, 24, 25, 26, 27, 28, 29]
[30, 31,   ,   ,   ,   ,   ]


Das stimmt... zumindest für dieses Jahr, mit meinem Windows Kalender überein

Aber ich mag mich daran erinnern, dass man auch mit 5 anstatt 6 Wochen hinkommen kann....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Hinweis zu Fehler im Kalender-Code - Aufgabe 5.3 aus Grundkurs Programmieren in Java 7. Auflage Java Basics - Anfänger-Themen 4
L einfachen kalender Programmieren HA! Java Basics - Anfänger-Themen 76
H Java Kalender systemabhängig programmieren? Java Basics - Anfänger-Themen 3
P Kalender Programmieren Java Basics - Anfänger-Themen 2
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
F MS365 Kalender lesen Java Basics - Anfänger-Themen 5
sserio Gregorianischer Kalender und dessen Tage. Java Basics - Anfänger-Themen 14
T simpler Kalender Java Basics - Anfänger-Themen 10
G Kalender Jahreszahlen Java Basics - Anfänger-Themen 6
J Gerorianischer Kalender wechselt am Freitag die Woche Warum Java Basics - Anfänger-Themen 2
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
I c++ sexagesimal kalender Java Basics - Anfänger-Themen 5
I ical - Datei auf Server ablegen und Kalender abbonieren Java Basics - Anfänger-Themen 0
C Kalender in Applet einfügen Java Basics - Anfänger-Themen 0
U Neu Julianischer Kalender Java Basics - Anfänger-Themen 2
T Kalender irrt sich Java Basics - Anfänger-Themen 8
M Kalender reloaded Java Basics - Anfänger-Themen 7
L Kalender Java Frame Java Basics - Anfänger-Themen 7
M Kalender mit Terminen Java Basics - Anfänger-Themen 24
F Problem mit selbstprogrammierten Kalender (als Übung) Java Basics - Anfänger-Themen 4
J Arrays (Kalender) Fehler im Programm Java Basics - Anfänger-Themen 2
P Date oder Kalender? Was soll man verwenden? Java Basics - Anfänger-Themen 2
K Erste Schritte Kalender selber erstellen? Java Basics - Anfänger-Themen 3
A JKomponente für Kalender Java Basics - Anfänger-Themen 5
R Kalender speichert keine Zeit Java Basics - Anfänger-Themen 2
M Kalender Java Basics - Anfänger-Themen 15
E Methoden zusammenfassen/Kalender erstellen Java Basics - Anfänger-Themen 13
T Einfacher Kalender Java Basics - Anfänger-Themen 17
G Kalender Bean in Netbean einbinden Java Basics - Anfänger-Themen 3
F Termine in einen kalender eintragen. Java Basics - Anfänger-Themen 11
G Kalender Von String zu boolean -- NullpointerException Java Basics - Anfänger-Themen 2
S Wie Termine/Notizen in Outlook Kalender einfügen ? Java Basics - Anfänger-Themen 3
D Gibt es einen vordefinierten Kalender in java? Java Basics - Anfänger-Themen 8
B Kalender -> Termine eintragen Java Basics - Anfänger-Themen 1
W Java Kalender Java Basics - Anfänger-Themen 6
B Kalender und Wochentagswechsel Java Basics - Anfänger-Themen 6
G The serializable class Kalender does not declare a static fi Java Basics - Anfänger-Themen 5
A Kalender mit Objekten belegen Java Basics - Anfänger-Themen 3
A kalender Java Basics - Anfänger-Themen 26
J Wie drucke ich eine Komponente wie Kalender auf dem Drucker Java Basics - Anfänger-Themen 3
G Kalender ? Java Basics - Anfänger-Themen 6
S kalender machen Java Basics - Anfänger-Themen 40
G kalender Java Basics - Anfänger-Themen 15
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
A Erste Schritte Dynamische Stempel im PDF Exchange programmieren Java Basics - Anfänger-Themen 0
D Programmieren nach UML Java Basics - Anfänger-Themen 2
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
B Überweisung programmieren Java Basics - Anfänger-Themen 7
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
thor_norsk Fernseher programmieren mit Java Java Basics - Anfänger-Themen 4
M Jenga Regeln Java Programmieren Java Basics - Anfänger-Themen 1
M Ressourcensparend programmieren Java Basics - Anfänger-Themen 3
brypa Wie Programmieren lernen? Java Basics - Anfänger-Themen 15
G Spielerwechsel programmieren Java Basics - Anfänger-Themen 1
J Solitär (Brettspiel) programmieren Java Basics - Anfänger-Themen 3
H Objektorientiertes Programmieren Java Basics - Anfänger-Themen 4
K 12- Stunden Konverter Programmieren Java Basics - Anfänger-Themen 1
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
L Zahlenspiel programmieren Java Basics - Anfänger-Themen 1
TimoN11 Automat programmieren Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
N Ufospiel programmieren Java Basics - Anfänger-Themen 13
KogoroMori21 Vorbereitung auf die Programmieren Klausur vom ersten Semester Java Basics - Anfänger-Themen 4
Drinkerbell Erste Schritte Zu blöd zum Programmieren? Java Basics - Anfänger-Themen 9
G Stack programmieren Java Basics - Anfänger-Themen 6
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
T Auf einem Schachbrett bewegen programmieren Java Basics - Anfänger-Themen 2
G Bruchrechner programmieren Java Basics - Anfänger-Themen 6
G Ufo Spiel programmieren Java Basics - Anfänger-Themen 13
D Schachbrett (8x8) programmieren Java Basics - Anfänger-Themen 3
J Spiel programmieren Java Basics - Anfänger-Themen 16
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
S Kreisberechnung3 Buch: Programmieren lernen mit Java von Hans-Peter Habelitz Java Basics - Anfänger-Themen 39
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
S Spiel-Programmieren. Wenn ein Objekt den anderen berührt. Java Basics - Anfänger-Themen 6
K Java programmieren Java Basics - Anfänger-Themen 6
V_Fynn03 Kontrolle des Quelltextes (Bank programmieren)(GUI) Java Basics - Anfänger-Themen 6
D Was tun gegen zu komplzierten Denken beim Programmieren Java Basics - Anfänger-Themen 27
V_Fynn03 Bruchrechner programmieren (2 Klassen) Java Basics - Anfänger-Themen 9
N Ticketautomat programmieren Java Basics - Anfänger-Themen 63
M Rechner programmieren Java Basics - Anfänger-Themen 3
V_Fynn03 Java Bruchrechner programmieren Java Basics - Anfänger-Themen 13
J Java Suchfunktion Programmieren Java Basics - Anfänger-Themen 1
L Erste Schritte Bin ich "zu dumm" oder nicht geeignet zum Programmieren? Java Basics - Anfänger-Themen 3
U Ist jemad gut in programmieren (JAVA) und kann mir helfen? Java Basics - Anfänger-Themen 1
H Uhr programmieren Java Basics - Anfänger-Themen 10
T Schalter programmieren Java Basics - Anfänger-Themen 17
S Ampel Programmieren Java Basics - Anfänger-Themen 5
P Erste Schritte Probleme mit dem Programmieren Java Basics - Anfänger-Themen 12
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
D Beim Programmieren auf die Logisch einfache Lösung kommen. Java Basics - Anfänger-Themen 17
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
steven789hjk543 Kann man mit Java und Eclipse einen Virus programmieren? Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben