Code-Schnipsel - Buß und Bettag im aktuellen Jahr Datum
Sammlung von Code-Schnipseln mit Bezug auf Datums-Funktionen. In diesem Beispiel wird der ermittelte Wert für den Buß und Bettag des aktuellen Jahres einer Variablen zugeordnet und mit einer JavaScript-Schreibanweisung in die HTML-Datei geschrieben.
|
|
Datum des Buß und Bettag ermitteln
Grundlagen-Informationen zum Date-Objekt unter Einführung 01 Einführung 02
Anwendung findet dieses Code-Schnipsel in Verbindung mit anderen, aus dem Systemdatum ermittelten Werten, zum Beispiel für: Datumsprüfung, Umleitungen, Kalenderfunktionen, Kirchenblatt, Terminlisten, Urlaubsplan, lange Wochenenden, ... .
Arbeitsschritte
Der Buß und Bettag kann berechnet werden, wenn man das Datum für den 4. Advent kennt und der wiederum ist abhängig vom 1. Weihnachtstag (jeweils der im Datum davor liegende Sonntag).
Als Basis für meine Berechnungen benötige ich also eine Datumsvariable, die als Wert das Datum des 25. Dezember des aktuellen Jahres hat. Diese Variable mit dem Namen 'Weihnachten' schaffe ich mit den nächsten drei Schritten:
1) Ein neues Date-Objekt (Weihnachten) wird kreiert
2) Für Tag und Monat lege ich den 25. und Dezember fest
3) Für das Jahr wird der aktuelle Jahreswert festgelegt
var DatumAktuell = new Date();
var JahrAktuell = DatumAktuell.getFullYear();
// Datum auf den 25 des laufenden Jahres setzen
var Weihnachten = new Date(JahrAktuell, 11, 25, 12, 0, 0)
Nun möchte ich herausfinden, auf welchen Wochentag der 25. Dezember fällt. Besonders interessant wäre es, wenn das ein Sonntag ist.
4) Aus diesem Wert wird mit getDay() der Wochentag ermittelt
5) Der ermittelte Wert wird in eine Variable (TagDerWoche) geschrieben
var TagDerWoche = Weihnachten.getDay()
Der Wert ist eine Zahl von 0 - 6. Der Zählvorgang beginnt also mit 0 und kann als Höchstwert maximal 6 sein. Er repräsentiert den Tag der Woche beginnend mit 0 für Sonntag.
So = 0, Mo = 1, Di = 2, Mi = 3, ...
Abhängig vom Wochentag muss ich zur Ermittlung des davor liegenden Sonntags vordatieren. Den Datumswert für Weihnachten wandle ich in einen Millisekundenwert um, um dan X mal 86400000 ms (1 Tag = 86400000 ms) zu subtrahieren. Fällt der 1. Weihnachtstag z.B. auf einen Sonntag, muss ich (zunächst einmal) um 7 Tage zurück rechnen (entsprechend 7 X 86400000 ms subtrahieren).
Zusätzlich subtrahiere ich dann weitere 32 Tage (Abstand zwischen 4. Advent und Buß und Bettag).
6) zeitlichen Versatz zum 25. Dezember berechnen
7) Datum ermitteln und in eine Variable (BussUndBettag) schreiben
var ZeitwertWeihnachten = Weihnachten.getTime()
// für den Buß und Bettag vordatieren abhängig vom Wochentag
Verschiebung = (((TagDerWoche == 0) ? 7 : TagDerWoche) + 32 )* 86400000;
BussUndBettag.setTime(ZeitwertWeihnachten - Verschiebung);
Nun möchte ich die Informationen aus BussUndBettag in ein normales Datumsformat transformieren, in eine Variable (DatumString) schreiben und anzeigen.
8) Tag, Monat und Jahresinfo aus BussUndBettag extrahieren
9) Als Datumsformat in eine Variable (DatumString) schreiben
var TagDatum = BussUndBettag.getDate();
var MonatDatum = BussUndBettag.getMonth() + 1;
var JahrDatum = BussUndBettag.getFullYear();
var DatumString = TagDatum + "." + MonatDatum + "." + JahrDatum;
Den ermittelten Wert kann man innerhalb einer Funktion weiter verarbeiten
oder auch sofort zur Anzeige bringen.
a) Schreiben mit document.write()
document.write('Buß und Bettag in diesem Jahr: '+ DatumString);
b) Alert-Meldung mit alert()
alert('Buß und Bettag in diesem Jahr: '+ DatumString);
ScriptCode
<script type="text/javascript" language="JavaScript">
<!--
var BussUndBettag = new Date();
var DatumAktuell = new Date();
var JahrAktuell = DatumAktuell.getFullYear();
// Datum auf den 25 des laufenden Jahres setzen
var Weihnachten = new Date(JahrAktuell, 11, 25, 12, 0, 0)
var TagDerWoche = Weihnachten.getDay()
var ZeitwertWeihnachten = Weihnachten.getTime()
// für den Buß und Bettag vordatieren abhängig vom Wochentag
Verschiebung = (((TagDerWoche == 0) ? 7 : TagDerWoche) + 21 )* 86400000;
BussUndBettag.setTime(ZeitwertWeihnachten - Verschiebung);
var TagDatum = BussUndBettag.getDate();
var MonatDatum = BussUndBettag.getMonth() + 1;
var JahrDatum = BussUndBettag.getFullYear();
var DatumString = TagDatum + "." + MonatDatum + "." + JahrDatum;
document.write("Buß und Bettag in diesem Jahr: " + DatumString);
//-->
</script>
gleiches Schema
Nach dem gleichen Schema kann man sämtliche Datumswerte berechnen, die vom Datum des Weihnachtsfestes abhängig sind. Zwei weitere Beispiele finden Sie hier in dieser Rubrik
Sonntag vor Buß und Bettag: Totensonntag (Abstand zum 4. Advent: 28)
Sonntag nach Buß und Bettag: Volkstrauertag (Abstand zum 4. Advent: 35)

|