Advanced   Java   Services JAVA-Praktikum Back Next Up Home
Wochentag zum Datum

Der junge Gauß hat eine kleine Formel entwickelt, mit der man zu einem Datum bestehend aus Tag, Monat und Jahr den zugehörigen Wochentag ermitteln kann.

Schreiben Sie ein Programm, daß zu einem vom Benutzer eingegebenen Datum den zugehörigen Wochentag ermittelt.

Damit die untenstehende Formel richtige Ergebnisse liefert, muß das Datum zwischen dem 01.01.1582 und dem 31.12.3000 liegen.

Die Berechnung erfolgt mit der folgenden von Gauß stammenden sogenannten Kalenderformel :

Das zu behandelnde Datum sei in den Variablen tag , monat , jahr abgelegt.

Damit werden zwei Hilfsgrößen h und k wie folgt berechnet :

  Ist monat <= 2,  so ist   h = monat + 12 und  k = jahr - 1. 
  Ist monat > 2,  so ist   h = monat  und  k = jahr. 

Der Wochentag ergibt sich nun durch :

wochentag = [ tag + 2*h + (3*h + 3) div 5 + k + k div 4 - k div 100 + k div 400 +1] mod 7

Dadurch erhält die Variable wochentag einen Wert zwischen 0 und 6 .

Dabei bedeutet 0 = Sonntag , 1 = Montag , usw.

Erläuterung :

  • div ist der Operator für Ganzzahldivision, so gilt etwa 15 div 7 = 2 , da 7 in 15 zweimal enthalten ist. Der Rest wird dabei nicht berücksichtigt, analog 17 div 3 = 5 . In Java (wie in C/C++) wird die Ganzzahldivision realisiert durch a/b , wenn a und b Ganzzahltypen (int, long, short, byte) sind.

  • mod ist der Restoperator, so gilt etwa 15 mod 7 = 1 , da 15 geteilt 7 den Rest 1 ergibt. Der ganze Anteil wird dabei nicht berücksichtigt, analog 17 mod 3 = 2 . In Java (wie in C/C++) wird der Restoperator realisiert durch a%b .

Siehe auch  Arithmetische Operatoren

Siehe auch  Gregorianischer und julianischer Kalender

Valid XHTML 1.0 Strict Lösung top Back Next Up Home