Anzeige der Arbeitsstunden imjahr Monat und co. + Schaltjahr
Übersicht

![]() |
WEBLinkBetreff: Anzeige der Arbeitsstunden imjahr Monat und co. + Schaltjahr |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo,
ich möchte die arbeitstage in einem Jahr bzw. Monat ausgeben. Auch mit schaltjahr und co. Auch an sich den Tag der grad ist Sam, SOn Mo .... Wie kann ich das am besten bewerkstelligen |
||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi! Hier mal ein Wochentags - Programm von mir, was ich früher mal gecoded hatte. Es gibt für ein Datum immer den richtigen Wochentag an. Probier es einfach mal aus. Die Rechnung, um auch in Schaltjahren den richtigen Wochentag zu haben ist nicht von mir ![]() BlitzBasic: [AUSKLAPPEN] Graphics 640,480,16,2 |
||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ausgehend von Ostern kann man die meisten beweglichen Feiertage errechnen.
Feiertage wie Ostern fallen nicht auf ein spezielles Datum. Die meisten beweglichen Feiertage haben einen definierten zeitlichen Abstand vom Ostersonntag, nur der in Sachsen noch gültige Buß- und Bettag definiert sich als der Mittwoch vor dem Sonntag vor dem 1. Advent. Die folgende Übersicht zeigt die Datenzusammenhänge und die Gültigkeit der entsprechenden Feiertage nach Bundesländern aufgeschlüsselt: Feiertag Datum Gültig in(Abkürzungen: siehe Tabellenende) Neujahr Fest: 01.01. bundesweit Erscheinungsfest (Hl. Drei Könige) Fest: 06.01. BW, BY, ST Karfreitag Beweglich: Ostersonntag - 2 Tage bundesweit Ostersonntag Beweglich: Gauß-Formel bundesweit Ostermontag Beweglich: Ostersonntag + 1 Tag bundesweit Maifeiertag Fest: 01.05. bundesweit Christi Himmelfahrt Beweglich: Ostersonntag + 39 Tage bundesweit Pfingstmontag Beweglich: Ostersonntag + 50 Tage bundesweit Fronleichnam Beweglich: Ostersonntag + 60 Tage BW, BY, HE, NW, RP, SL, SA (in einzelnen Gemeinden), TH (in überwiegend kath. Gemeinden) Mariä Himmelfahrt Fest: 15.08. BY (in einzelnen Gemeinden), SL Tag der deutschen Einheit Fest: 03.10. bundesweit Reformationstag Fest: 31.10. BB, MV, SA, ST, TH Allerheiligen Fest: 01.11. BW, BY, NW, RP, SL Buß- u. Bettag Beweglich: Mittwoch vor dem Sonntag vor dem 1. Advent SA Erster Weihnachtsfeiertag Fest: 25.12. bundesweit Zweiter Weihnachtsfeiertag Fest: 27.12. bundesweit Offizielle Abkürzungen der deutschen Bundesländer: BW = Baden-Württemberg, BY = Bayern, BE = Berlin, BB = Brandenburg, HB = Bremen, HH = Hamburg, HE = Hessen, MV = Mecklenburg-Vorpommern, NI = Niedersachsen, NW = Nordrhein-Westfalen, RP = Rheinland-Pfalz, SL = Saarland, SN = Sachsen, ST = Sachen-Anhalt, SH = Schleswig-Holstein, TH = Thüringen Die Abhängigkeit der beweglichen Feiertage vom Ostersonntag ist vergleichsweise simpel - die Addition eines Intervalls zu einem Datum wird unter Visual Basic mithilfe der Funktion DateAdd vorgenommen. Da jedoch auch der Ostersonntag nicht datumsfest ist, muss zunächst dessen Datum in einem Jahr errechnet werden. Ostern fällt auf den ersten Sonntag nach dem ersten Frühlingsvollmond. Für Nichtastronomen lässt sich dieser Sonntag glücklicherweise auch nach der so genannten Osterformel von Carl Friedrich Gauß berechnen, die dieser im Jahr 1800 aufstellte. Die folgende Funktion Ostersonntag liefert auf Basis dieser Formel das Datum des Ostersonntags in einem angegebenen Jahr: Public Function Ostersonntag(Optional ByVal Jahr As Long) As Date ' Osterfunktion nach Carl Friedrich Gauß (1800). Rückgabewert ' ist das Datum des Ostersonntags im angegebenen (ersatzweise: ' aktuellen) Jahr. Gültigkeitsbereich: 1583 - 8702 (auf das ' Auslösen von Laufzeitfehlern bei Unter- oder Überschreitung ' dieses Gültigkeitsbereichs wird hier absichtlich verzichtet). Dim a As Long, b As Long, c As Long, d As Long, e As Long, f As Long ' Wurde kein Jahr angegeben, wird das aktuelle Jahr verwendet: If Jahr = 0 Then Jahr = Year(Now) End If ' Die "magische" Gauss-Formel anwenden: a = Jahr Mod 19 b = Jahr \ 100 c = (8 * b + 13) \ 25 - 2 d = b - (Jahr \ 400) - 2 e = (19 * (Jahr Mod 19) + ((15 - c + d) Mod 30)) Mod 30 If e = 28 Then If a > 10 Then e = 27 End If ElseIf e = 29 Then e = 28 End If f = (d + 6 * e + 2 * (Jahr Mod 4) + 4 * (Jahr Mod 7) + 6) Mod 7 ' Rückgabewert als Datum bereitstellen Ostersonntag = DateSerial(Jahr, 3, e + f + 22) End Function Wäre der "Buß- und Bettag", der im Jahr 1995 in den meisten Bundesländern zwecks Finanzierung der Pflegeversicherung weichen musste, nicht im Bundesland Sachsen noch ein Feiertag, wären wir hier bereits an unserem Ziel angelangt. So aber müssen wir auch die Berechnung des Buß- und Bettags berücksichtigen: Er fällt auf den Mittwoch vor dem Sonntag vor dem ersten Adventssonntag. Offensichtlich ist, dass der erste Adventssonntag drei Wochen vor dem vierten Adventssonntag liegt. Der vierte Adventssonntag wiederum ist der Sonntag vor dem 25. Dezember eines Jahres. |
||
![]() |
WEBLink |
![]() Antworten mit Zitat ![]() |
---|---|---|
Diese Tagberechnung raff ich gar nicht.
Ich hab jetzt mit CurrentDate das Datum wiedergegeben. nun möchte ich wissen wie man den Wochentag rausbekommt. Wenn ich di Berechnungen sie ist mir das zu hoch. Gibts da nicht ein befehl wie bei Delphi |
||
Gerhard |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Tagberechnung hab ich früher auch gemacht, ohne sie im Detail zu verstehen. Nimm doch erstmal einfach die Funktion von Timo. | ||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
WEBLink hat Folgendes geschrieben: Gibts da nicht ein befehl wie bei Delphi
Delphi hat mit Sicherheit keine Funktion, um den Wochentag zu errechnen ![]() Aber fass das von mir einfach in eine Funktion und schon haste's ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group