Wochentag berechnen

AP2000

Mitglied
Hallo!

Wie kann ich in diesen Code auch noch einbringen, dass wenn der Wochentag kleiner als 0 ist 7 addiert wird?

Java:
import java.util.Scanner;

public class WochentagrechnerGregorianisch {
  
    public static void main (String [] arg){
      
        Scanner in = new Scanner(System.in);
      
        System.out.println("Welcher Tag?");    // Tag einlesen
        int tag = in.nextInt();
      
        System.out.println("Welcher Monat?"); // Monat einlesen
        int monat = in.nextInt();
      
        System.out.println("Welches Jahr?"); // Jahr einlesen
        int jahr = in.nextInt();
      
        if (monat < 3){                // Ist der Monat kleiner drei, dann...
            jahr = jahr - 1;        // Jahr zurücksetzen
            monat = monat + 12;        // Monat zwei addieren
        }
      
        int wochentag = 0;
        int jahrAnfang = jahr / 100;  // die Jahrhundertzahlen
        int jahrEnde = jahr % 100;         // die letzten beiden Zahlen
      
      
        if (jahrAnfang > 15 && jahrEnde > 82) {    // gregorianischer Kalender
            wochentag = (tag + ((monat++) * 26 / 10) + jahrEnde + (jahrEnde / 4) + (jahrAnfang / 4) - 2 * jahrAnfang) % 7;    // Zeller Formel
        } else if (jahrAnfang < 15 && jahrEnde < 82){    //julianischer Kalender
            wochentag = (tag + ((monat++) * 26 / 10) + jahrEnde + (jahrEnde / 4) + 5 - jahrAnfang) % 7;
        }
      
      
        switch (wochentag){
        case 0:
            System.out.println ("War nen Samstag");
            break;
        case 1:
            System.out.println("War nen Sonntag");
            break;
        case 2:
            System.out.println("War nen Montag");
            break;
        case 3:
            System.out.println("War nen Dienstag");
            break;
        case 4:
            System.out.println("War nen Mittwoch");
            break;
        case 5:
            System.out.println("War nen Donnerstag");
            break;
        case 6:
            System.out.println("War nen Freitag");
            break;
        default:
            System.out.println("Gibts nicht");
            break;
          
        }
          
    }
  

}
Danke
 
Zuletzt bearbeitet von einem Moderator:

WetWer

Mitglied
Wieso so kompliziert mein Freund:eek:...

Benutze doch das SimpleDateFormat mit dem Date. Ist super simpel. Gibt zB: simpleDateFormat.



SimpleDateFormat dayAusgeschrieben = new SimpleDateFormat( "EEEE" );
// Objekt für ausgabe EEEE=Wochentag
SimpleDateFormat dateFormatieren = new SimpleDateFormat( "dd/MM/yyyy" );
// Objekt für eingabe gib hier dein datum ein dd = tag, MM = Monat, yyyy = Jahr
Date date = new Date();
date = idateFormat.parse( 6+ "/" + 5+ "/" + 2016 );
System.out.println("War nen " + dayAusgeschrieben.format( date ));

Hoffentlich vereinfacht dir das dein Auftrag etwas...o_O

:)LG Wetwer
 

AP2000

Mitglied
Java:
import java.util.Scanner;

public class WochentagrechnerGregorianisch {
    public static void main (String [] arg){
   
        Scanner in = new Scanner(System.in);
   
        System.out.println("Welcher Tag?");    // Tag einlesen
        int tag = in.nextInt();
   
        System.out.println("Welcher Monat?"); // Monat einlesen
        int monat = in.nextInt();
   
        System.out.println("Welches Jahr?"); // Jahr einlesen
        int jahr = in.nextInt();
   
        if (monat < 3){                // Ist der Monat kleiner drei, dann...
            jahr = jahr - 1;        // Jahr zurücksetzen
            monat = monat + 12;        // Monat zwei addieren
        }
   
        int wochentag = 0;
        int jahrAnfang = jahr / 100;  // die Jahrhundertzahlen
        int jahrEnde = jahr % 100;         // die letzten beiden Zahlen
   
   
        if (jahrAnfang > 15 && jahrEnde > 82) {    // gregorianischer Kalender
            wochentag = (tag + ((monat++) * 26 / 10) + jahrEnde + (jahrEnde / 4) + (jahrAnfang / 4) - 2 * jahrAnfang) % 7;    // Zeller Formel
        } else if (jahrAnfang < 15 && jahrEnde < 82){    //julianischer Kalender
            wochentag = (tag + ((monat++) * 26 / 10) + jahrEnde + (jahrEnde / 4) + 5 - jahrAnfang) % 7;
        }
   
   
        if (wochentag < 0) wochentag+=7;
     
        switch (wochentag){
        case 0:
            System.out.println ("War nen Samstag");
            break;
        case 1:
            System.out.println("War nen Sonntag");
            break;
        case 2:
            System.out.println("War nen Montag");
            break;
        case 3:
            System.out.println("War nen Dienstag");
            break;
        case 4:
            System.out.println("War nen Mittwoch");
            break;
        case 5:
            System.out.println("War nen Donnerstag");
            break;
        case 6:
            System.out.println("War nen Freitag");
            break;
        default:
            System.out.println("Gibts nicht");
            break;
       
        }
       
    }

}

Wenn ich das dann so mache, kommt bei mir immer Samstag raus. Weiß jmd wieso?

Danke
 
Zuletzt bearbeitet von einem Moderator:

Flown

Administrator
Mitarbeiter
Das nächste mal den Code bitte in Code-Tags schreiben:[code=java]//JAVA CODE HERE[/code]

Aber es liegt vielleicht am Postfix-Inkrement: monat++. Da solltest du mal näher hinsehen!
 

VfL_Freak

Top Contributor
Moin,

überleg' Dir mal genau, was Deine if-Bedingung macht!!
Java:
if (jahrAnfang > 15 && jahrEnde > 82)
{
    // ...
} else if (jahrAnfang < 15 && jahrEnde < 82)
{
    // ...
}
Du fängst hier genau zwei Fälle, aber was ist mit allen anderen ??
etwa: 'jahrAnfang == 15 && jahrEnde == 82' / 'jahrAnfang > 15 && jahrEnde < 82' usw.
Da bleibt Dein Wochentag halt '0', so wie initialisiert!!

Du musst schon wirklich ALLE Fälle abhandeln (dann vlt. besser mit 'switch-case')!

Gruß Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Wochentag berechnen Java Basics - Anfänger-Themen 5
A Wochentag eines Datums berechnen Java Basics - Anfänger-Themen 7
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
M Wochentag ermittel und ggf tage abziehen Java Basics - Anfänger-Themen 4
N String kann nicht in Wochentag konvertiert werden Java Basics - Anfänger-Themen 6
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
E Gregorian Calendar übergibt falschen Wochentag Java Basics - Anfänger-Themen 2
N falscher Wochentag GreogrianCalendar Java Basics - Anfänger-Themen 6
M Wochentag Java Basics - Anfänger-Themen 3
L Wochentag Java Basics - Anfänger-Themen 4
E Wochentag String parsen Java Basics - Anfänger-Themen 2
G Wochentag und Jahrtag werden nicht korrekt ermittelt Java Basics - Anfänger-Themen 8
J Den Wochentag eines spezifischen Datums ausgeben Java Basics - Anfänger-Themen 2
G Gibt es eine möglichkeit den Wochentag herauszufinden? Java Basics - Anfänger-Themen 28
S beliebiges Datum einlesen, Wochentag eines Datums ermitteln Java Basics - Anfänger-Themen 18
A Wochentag über SimpleDateFormat bringt wirre Ergebnisse Java Basics - Anfänger-Themen 4
P Wochentag von Date Java Basics - Anfänger-Themen 5
G Datum in Wochentag ausgeben Java Basics - Anfänger-Themen 3
G Wochentag eines Datums ermitteln Java Basics - Anfänger-Themen 20
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
laxla123 Quersumme berechnen Java Basics - Anfänger-Themen 1
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
A Berechnen Moor Nachbarschaft Java Basics - Anfänger-Themen 5
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
E Alter (Laufzeit) berechnen Java Basics - Anfänger-Themen 11
I Zuschläge berechnen Java Basics - Anfänger-Themen 15
L mit Fakultät mathematische Formel berechnen Java Basics - Anfänger-Themen 5
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
L Präfix berechnen Java Basics - Anfänger-Themen 33
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
V Rückgeld berechnen Java Basics - Anfänger-Themen 6
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
L Anhalteweg berechnen Java Basics - Anfänger-Themen 6
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
M Quadratwurzel berechnen Java Basics - Anfänger-Themen 8
V Wachstum berechnen und in Ist-Formel verwenden Java Basics - Anfänger-Themen 5
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Abschreibungsplan berechnen Java Basics - Anfänger-Themen 23
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
H Eingabedaten berechnen Java Basics - Anfänger-Themen 9
B Tranportkosten berechnen mit unterschiedlichen MwSt Java Basics - Anfänger-Themen 9
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Sparplan berechnen Java Basics - Anfänger-Themen 4
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
CptK Best Practice Schussparabel berechnen Java Basics - Anfänger-Themen 3
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
E Statistische Kennzahlen berechnen Java Basics - Anfänger-Themen 2
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
C Preis berechnen mit Java Java Basics - Anfänger-Themen 4
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1
L Pi berechnen Java Basics - Anfänger-Themen 1
CptK Term (als String) berechnen und ausgeben Java Basics - Anfänger-Themen 10
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
J Variablen arithmetischen Mittelwert berechnen Java Basics - Anfänger-Themen 5
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
M Erste Schritte Mittelwert berechnen -> Methode in der Methode? Java Basics - Anfänger-Themen 14
S Compiler-Fehler Schaltjahr berechnen Java Basics - Anfänger-Themen 5
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
S Durchschnitt berechnen aus zwei Textfeldern Java Basics - Anfänger-Themen 21
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
R Liga Berechnen Java Basics - Anfänger-Themen 1
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
R Fussballtabellen berechnen Java Basics - Anfänger-Themen 12
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
F ISBN Prüfziffer berechnen Java Basics - Anfänger-Themen 17
F Die Teilersumme einer Eingabe berechnen Java Basics - Anfänger-Themen 11
S Negafibonacci Folge berechnen Java Basics - Anfänger-Themen 24
G Array Mittelwert berechnen, wie? Java Basics - Anfänger-Themen 8
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
N Mit LocalDate alter berechnen Java Basics - Anfänger-Themen 3
J Laufzeit berechnen/Laufzeitanalyse Java Basics - Anfänger-Themen 2
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
Ste3et_C0st Vectoren berechnen Java Basics - Anfänger-Themen 8
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben