#!/COMMUNITY
Members: 5187
davon online: 1
weitere User: 26
06.01.2009 / 08:41
Community-Member werden
|
Paßwort vergessen
|
OnlineMonitor (1)
Perl-Archiv
Forum
Javascript
Home
PERLscripts
PHPscripts
JAVAscripts
Hilfreiches
Links2www
Newscenter
Community
Interna
Javascript
Archivübersicht
Tutorials
Zum Forum
JS-Links
BuchTipps
WebForen
Forenübersicht
Neueste Themen
Ohne Antwort
Aktivste Themen
Themensuche
Forenarchiv
Newsgroups
Sehenswertes
Kontaktlinsen
EP:Netshop
Bondtravel
Babywalz Shop
Conrad.de
Reifen Shop
Reisen
Uhren-Schmuck
Walbusch
Web-Consulting
Kabel-Shop
Büromöbel
Webhosting
Javascript » Datum » Feiertagskalender
zur Übersicht
Kategorie
Datum
Bezeichnung
Feiertagskalender
ScriptDemo
Neues Fenster für Demo öffnen
Statistik
21959 Aufrufe davon 1x gestern
Kalender mit Feiertagen wobei die veränderlichen Feiertage durch spezielle Algorithmen berechnet werden
Javascript-Quellcode
(einfach markieren, kopieren und lokal abspeichern)
<!-- ======================== Anwendung: Kalenderblatt ======================== Copyright (c) 2000 by Dietmar Rabich, Duelmen. Alle Rechte vorbehalten. Version: 1.0 Datum: 6.4.2000 Aenderungen: - --> <script LANGUAGE="JavaScript" type="text/javascript" TYPE="text/javascript"> <!-- function Kalender() { alert("Hier wird eine aktuelle JavaScript-Version ben\xF6tigt!") } //--> </SCRIPT> <SCRIPT LANGUAGE="JavaScript1.2" TYPE="text/javascript"> <!-- // Monatsnamen und Tage var Monate = [ {name:"Januar", tage:31}, {name:"Februar", tage:28}, {name:"März", tage:31}, {name:"April", tage:30}, {name:"Mai", tage:31}, {name:"Juni", tage:30}, {name:"Juli", tage:31}, {name:"August", tage:31}, {name:"September", tage:30}, {name:"Oktober", tage:31}, {name:"November", tage:30}, {name:"Dezember", tage:31} ] // 4stellige Jahreszahl function get4DigitYear(theDate) { if(theDate.getFullYear) return theDate.getFullYear() var y = theDate.getYear() return y + ((y < 1900) ? 1900 : 0) } // --- Feiertagsberechnung --- // Ostersonntag nach Gauss'scher Formel function Ostersonntag(Jahr) { // Bem.: intern darf nicht einmal vor dem 1.1.1970 datiert werden if((Jahr < 1583) || (Jahr > 2299)) return null var m, n if(Jahr <= 1699) { m = 22 n = 2 } else if(Jahr <= 1799) { m = 23 n = 3 } else if(Jahr <= 1899) { m = 23 n = 4 } else if(Jahr <= 2099) { m = 24 n = 5 } else if(Jahr <= 2199) { m = 24 n = 6 } else { m = 25 n = 0 } var a = Jahr % 19 var b = Jahr % 4 var c = Jahr % 7 var d = (19 * a + m) % 30 var e = (2 * b + 4 * c + 6 * d + n) % 7 var t = 22 + d + e if(t > 31) { t = t - 31 if(t == 26) t = 19 else if(t == 25) { if((d == 28) && (e == 6) && (a > 10)) t = 18 } return new Date(Jahr, 3, t, 12, 0, 0) } return new Date(Jahr, 2, t, 12, 0, 0) } // 4. Advent in Abhaengigkeit des 1. Weihnachtstags berechnen function VierterAdvent(Jahr) { var StartDatum = new Date(Jahr, 11, 25, 12, 0, 0) var WTag = StartDatum.getDay() var Temp = StartDatum.getTime() StartDatum.setTime(Temp - ((WTag == 0) ? 7 : WTag) * 86400000) return StartDatum } // Feiertag anlegen mit Datum und Name function feiertag(datum, name) { this.datum = datum this.datum.setHours(12) this.datum.setMinutes(0) this.datum.setSeconds(0) this.name = name return this } // Feiertag anlegen mit Datum (aus Zeit in Millisekunden) und Name function feiertag_time(time, name, flag) { var TempDate = new Date() TempDate.setTime(time) this.datum = TempDate this.datum.setHours(12) this.datum.setMinutes(0) this.datum.setSeconds(0) this.name = name return this } // Vergleichsfunktion zur Sortierung nach Datum function compare_date(d1, d2) { if(d1.datum.getTime() < d2.datum.getTime()) return -1 if(d1.datum.getTime() > d2.datum.getTime()) return 1 return 0 } // Anlage eines Felds mit allen Feiertagen zum angegebenen Jahr function feiertage(Jahr) { var TagMS = 86400000 // Anzahl Millisekunden pro Tag var Feiertag = new Array() // Feld fuer Feiertage var cnt = 0 // Zaehler fuer Feiertage // Von Ostern abhaengige Feiertage var Ostern = Ostersonntag(Jahr) var OTime = Ostern.getTime() Feiertag[cnt] = new feiertag(Ostern, "Ostersonntag") Feiertag[++cnt] = new feiertag_time(OTime + TagMS, "Ostermontag") Feiertag[++cnt] = new feiertag_time(OTime + 39 * TagMS, "Christi Himmelfahrt") Feiertag[++cnt] = new feiertag_time(OTime + 49 * TagMS, "Pfingstsonntag") Feiertag[++cnt] = new feiertag_time(OTime + 50 * TagMS, "Pfingstmontag") Feiertag[++cnt] = new feiertag_time(OTime + 60 * TagMS, "Fronleichnam") Feiertag[++cnt] = new feiertag_time(OTime - 48 * TagMS, "Rosenmontag", true) Feiertag[++cnt] = new feiertag_time(OTime - 47 * TagMS, "Fastnacht") Feiertag[++cnt] = new feiertag_time(OTime - 46 * TagMS, "Aschermittwoch") Feiertag[++cnt] = new feiertag_time(OTime - 2 * TagMS, "Karfreitag") // Vom 4. Advent abhaengige Feiertage var Advent4 = VierterAdvent(Jahr) var A4Time = Advent4.getTime() Feiertag[++cnt] = new feiertag(Advent4, "4. Advent") Feiertag[++cnt] = new feiertag_time(A4Time - 7 * TagMS, "3. Advent") Feiertag[++cnt] = new feiertag_time(A4Time - 14 * TagMS, "2. Advent") Feiertag[++cnt] = new feiertag_time(A4Time - 21 * TagMS, "1. Advent") Feiertag[++cnt] = new feiertag_time(A4Time - 28 * TagMS, "Totensonntag") Feiertag[++cnt] = new feiertag_time(A4Time - 35 * TagMS, "Volkstrauertag") Feiertag[++cnt] = new feiertag_time(A4Time - 32 * TagMS, "Buß- und Bettag") // Feste Feiertage Feiertag[++cnt] = new feiertag(new Date(Jahr, 0, 1), "Neujahr") Feiertag[++cnt] = new feiertag(new Date(Jahr, 0, 6), "Heilige 3 Könige") Feiertag[++cnt] = new feiertag(new Date(Jahr, 1, 14), "Valentinstag") Feiertag[++cnt] = new feiertag(new Date(Jahr, 4, 1), "Maifeiertag") Feiertag[++cnt] = new feiertag(new Date(Jahr, 7, 15), "Maria Himmelfahrt") Feiertag[++cnt] = new feiertag(new Date(Jahr, 9, 3), "Tag der Deutschen Einheit") Feiertag[++cnt] = new feiertag(new Date(Jahr, 9, 31), "Reformationstag") Feiertag[++cnt] = new feiertag(new Date(Jahr, 10, 1), "Allerheiligen") Feiertag[++cnt] = new feiertag(new Date(Jahr, 11, 24), "Heiligabend") Feiertag[++cnt] = new feiertag(new Date(Jahr, 11, 25), "1. Weihnachtstag") Feiertag[++cnt] = new feiertag(new Date(Jahr, 11, 26), "2. Weihnachtstag") Feiertag[++cnt] = new feiertag(new Date(Jahr, 11, 31), "Silvester") // Feiertage nach Datum sortieren Feiertag.sort(compare_date) // und zurueck! return Feiertag } // --- Kalenderaufbereitung und -ausgabe --- // Kalender function Kalender(monat, jahr) { var pct = 0 var Monat = new Date(jahr, monat - 1, 1) var Heute = new Date() var DieserTag = null function pcta(p) { status = "Aufbereitung Kalender " + String(p) + "% fertig." } pcta(pct) // Vorbereitung/Schaltjahr if((Heute.getMonth() == Monat.getMonth()) && (get4DigitYear(Heute) == get4DigitYear(Monat))) DieserTag = Heute.getDate() var Jahr = get4DigitYear(Monat) if((!(Jahr % 4) && (Jahr % 100)) || !(Jahr % 400)) Monate[1].tage = 29 AnzahlTage = Monate[Monat.getMonth()].tage var StartTag = Monat.getDay() - 1 if(StartTag < 0) StartTag = 6 // Feiertage var Feiertage = feiertage(Jahr) var RelevanteFeiertage = new Array() pct += 5 pcta(pct) // Feiertage dieses Monats var j var cnt = 0 for(j = 0; j < Feiertage.length; j++) if(Feiertage[j].datum.getMonth() == Monat.getMonth()) RelevanteFeiertage[cnt++] = Feiertage[j] // Ausgabe Kalenderblatt document.open("text/html") document.writeln("<TABLE BORDER=2 CELLPADDING=2 CELLSPACING=0 BORDERCOLOR=\"#000000\">") document.writeln("<CAPTION><BIG><STRONG>" + Monate[Monat.getMonth()].name + " " + Jahr + "</STRONG></BIG></CAPTION>") document.write("<TR ALIGN=CENTER VALIGN=MIDDLE BGCOLOR=\"#EEEEEE\"><TH WIDTH=\"14%\">Mo</TH>") document.write("<TH WIDTH=\"14%\">Di</TH>") document.write("<TH WIDTH=\"14%\">Mi</TH>") document.write("<TH WIDTH=\"14%\">Do</TH>") document.write("<TH WIDTH=\"14%\">Fr</TH>") document.write("<TH WIDTH=\"15%\">Sa</TH>") document.writeln("<TH WIDTH=\"15%\">So</TH></TR>") var column = StartTag document.write("<TR ALIGN=CENTER>") var i for(i = 0; i < StartTag; i++) document.write("<TD BGCOLOR=\"#999999\"> </TD>") for(i = 1; i <= AnzahlTage; i++) { pct += Math.floor(90 / AnzahlTage) pcta(pct) var clr = "" for(j = 0; j < RelevanteFeiertage.length; j++) { if(i == RelevanteFeiertage[j].datum.getDate()) { clr = " BGCOLOR=\"#FFEECC\"" break } } document.write("<TD" + clr + ">") if(i == DieserTag) document.write("<FONT COLOR=\"#FF0000\"><STRONG>") if(column >= 5) document.write("<STRONG>") document.write(i) if(i == DieserTag) document.write("</STRONG></FONT>") if(column >= 5) document.write("</STRONG>") document.write("</TD>") column++ if((column == 7) && (i != AnzahlTage)) { document.write("</TR>\n<TR ALIGN=CENTER>") column = 0 } } if(column != 0) for(i = column; i < 7; i++) document.write("<TD BGCOLOR=\"#999999\"> </TD>") document.writeln("</TR></TABLE>") // Ausgabe Feiertage var ausg = false for(j = 0; j < RelevanteFeiertage.length; j++) { if(!ausg) { document.write("<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=1>") ausg = true } document.write("<TR ALIGN=LEFT VALIGN=MIDDLE><TD><SMALL>" + String(RelevanteFeiertage[j].datum.getDate()) + ".</SMALL></TD><TD><SMALL> </SMALL></TD><TD><SMALL>" + RelevanteFeiertage[j].name + "</SMALL></TD></TR>") } if(ausg) document.write("</TABLE>") document.close() pct = 100 pcta(pct) } // --> </SCRIPT> </HEAD> <BODY CLASS="JSBSP"> <A NAME="Top"></A> <DIV ALIGN=CENTER> <NOSCRIPT><P><STRONG><FONT COLOR="#FF0000">Bitte JavaScript aktivieren!</FONT></STRONG></P></NOSCRIPT> <script LANGUAGE="JavaScript" type="text/javascript" TYPE="text/javascript"> <!-- // Tagesdatum var aktuell = new Date() // Anzeigemonat var my_monat = aktuell.getMonth() + 1 var my_jahr = get4DigitYear(aktuell) if(location.search != "") { var werte = unescape(location.search.substring(1)) werte = werte.split("&") if(werte.length == 2) { werte[0] = werte[0].split("=") if(werte[0][0] == "monat") my_monat = parseInt(werte[0][1]) if(werte[0][0] == "jahr") my_jahr = parseInt(werte[0][1]) werte[1] = werte[1].split("=") if(werte[1][0] == "monat") my_monat = parseInt(werte[1][1]) if(werte[1][0] == "jahr") my_jahr = parseInt(werte[1][1]) } } // Kalenderausgabe Kalender(my_monat, my_jahr) // Steuerung var l = location.href if(l.indexOf("?") != -1) { l = location.href.split("?") l = l[0] } var vor = new Date(my_jahr, my_monat - 2, 1) var nach = new Date(my_jahr, my_monat, 1) document.open("text/html") document.write("<P><SMALL><STRONG>[ <A HREF= \"" + l + "?artid=1004961559&monat=" + (aktuell.getMonth() + 1) + "&jahr=" + get4DigitYear(aktuell) + "\">Aktueller Monat</A> ] " + "[ <A HREF= \"" + l + "?artid=1004961559&monat=" + (vor.getMonth() + 1) + "&jahr=" + get4DigitYear(vor) + "\">Zurück</A> ] " + "[ <A HREF= \"" + l + "?artid=1004961559&monat=" + (nach.getMonth() + 1) + "&jahr=" + get4DigitYear(nach) + "\">Vor</A> ]" + "</SMALL></STRONG></P>") document.close() // --> </SCRIPT> <P><SMALL>Copyright © 2000 by <A HREF="http://www.rabich.de/" TARGET="_blank">Dietmar Rabich</A>, Dülmen.<BR>Alle Rechte vorbehalten.</SMALL></P> </DIV>
Kommentare zu
Feiertagskalender
6 Kommentar(e) vorhanden / Anzeige der neuesten 5
am 22.10.2004 um 14:27 Uhr von quasselstrippe
klappt wunderbar grosses lob und dank. artid=1004961559& wie gesagt 3 mal entfernen und ...
am 08.04.2004 um 07:58 Uhr von Aufmerksamer Leser
Der in dem Skript enthaltene Teil "artid=1004961559" steht nicht im Originalskript. Auch i...
am 05.01.2004 um 10:31 Uhr von Fred
Lösung zum vor/zurück: such nach artid und entferne den ganzen Ausdruck "artid=10049615...
am 07.12.2003 um 01:14 Uhr von Thorsten
Super gut, war bestimmt eine Menge Arbeit. Habe mir erlaubt, die Blätter-Links zu löschen ...
am 07.11.2003 um 11:20 Uhr von KF
Yep. Das mit dem Vor-/Zurück klappt nicht. Ansonsten nettes Teil. Wenn jemand 'ne Idee h...
Alle Kommentare anzeigen
-
Kommentar hinzufügen
© PERL/CGI/
PHP
/JS/SCRIPT/unity.de 1998-2008 .::.
interaktiv.shop
.::.
CGI-Service
.::.
Kontakt
.::.
Impressum
Link: /javascript/scripts/javascript_0271_main.shtml .::. Aufrufe heute: 1 .::. Aufrufe gesamt: 15375