| Von FelixS am 12.06.2008 um 18:01 |
Bei meinem Geburtstag versagt es aber völlig ;) |
| Von Marcel Kamenzin am 05.08.2003 um 12:08 |
GDatum = Tag & "." & Monat + "." & Jahr sollte durch GDatum = DateSerial(Jahr, Monat, Tag) ersetzt werden. Sonst funktioniert es nicht mit anderen Ländereinstellungen. |
| Von Jörg am 05.07.2003 um 12:47 |
Kleine Verbesserung der Function: Function OSTERN(JAHR As Long) As Date a& = JAHR Mod 19 b& = JAHR \ 100 c& = JAHR Mod 100 d& = b \ 4 e& = b Mod 4 f& = (b + 8) \ 25 g& = (b - f + 1) \ 3 h& = (19 * a + b - d - g + 15) Mod 30 i& = c \ 4 k& = c Mod 4 l& = (32 + 2 * e + 2 * i - h - k) Mod 7 m& = (a + 11 * h + 22 * l) \ 451 wert& = h + l - 7 * m + 22 monat& = 3 - (wert > 31) datum& = wert + 31 * (wert > 31) OSTERN = DateSerial(JAHR, monat, datum) End Function Gruß Jörg |
| Von Jörg Pockrandt am 08.04.2003 um 18:23 |
Hier ist die unten erwähnte Function zur Feiertagsberechnung zum Kopieren und Einfügen in ein Excel-Modul z.B.: Function OSTERN(JAHR As Integer, RÜCKGABE As Integer) As Integer ' ' RÜCKGABE: ' 0 -> Tagesdatum ' 1 -> Monat ' a = JAHR Mod 19 b = JAHR \ 100 c = JAHR Mod 100 d = b \ 4 e = b Mod 4 f = (b + 8) \ 25 g = (b - f + 1) \ 3 h = (19 * a + b - d - g + 15) Mod 30 i = c \ 4 k = c Mod 4 l = (32 + 2 * e + 2 * i - h - k) Mod 7 m = (a + 11 * h + 22 * l) \ 451 wert = h + l - 7 * m + 22 If wert > 31 Then monat = 4 datum = wert - 31 Else monat = 3 datum = wert End If If RÜCKGABE = 0 Then OSTERN = datum Else OSTERN = monat End If End Function |
| Von Jörg Pockrandt am 07.04.2003 um 13:40 |
Hallo VB-Freunde, unter dem Link http://www.serve.com/jb/ostern.htm gibt es mehrere Formeln zur Feiertagsberechnung. Die letzte aus der Turbo-Pascal-FAQ ist die einfachste und funktioniert genauso wie die von Gauß. Tipp: Das DIV steht für Ganzahldivision und kann durch INT ersetzt werden, oder einfach statt "/" "\" einsetzen! |
| Von Peter Obier am 16.10.2002 um 03:36 |
Hallo Herr Kriegerow, ich komme beim Aufruf "Command2_Click(I as Integer) nicht klar. Welcher Wert "I" wird hier übergeben ? Ich bekomme dabei eine Fehlermeldung "Deklaration der Beschreibung entspricht nicht..." usw. Würde mich über eineAntwort freuen. Ansonsten spielen die Feiertage. Danke und Tschüß P. Obier |
| Von Peach am 19.04.2002 um 23:40 |
Int(J/100) kommt in der Formel unzählige Male vor. Es dürfte schneller sein, dies vorgängig in eine eigene Variable zu speichern, das spart auch noch einige Klammern. Für was das 'n' steht ist mir auch nicht klar. Jh = Int(J / 100) I1 = (Jh - Int(Jh / 4) - Int((Jh - (Int((Jh - 17) / 25))) / 3) + 19 * (J - 19 * Int(J / 19)) + 15) I2 = I1 - 30 * Int((Jh - Int(Jh / 4) - Int((Jh - (Int((Jh - 17) / 25))) / 3) + 19 * (J - 19 * Int(J / 19)) + 15) / 30) I3 = I2 - Int(I2 / 28) * (1 - Int(I2 / 28) * Int(29 / (I2 + 1)) * Int((21 - n) / 11)) A2 = (J + Int(J / 4) + I3 + 2 - Jh + Int(Jh / 4)) - 7 * Int((J + Int(J / 4) + I3 + 2 - Jh + Int(Jh / 4)) / 7) |
| Von Jens Kutsche am 12.03.2002 um 15:33 |
- Die Berechnung von I2 kann man erheblich verkürzen, da die ersten 4 Zeilen bis "- 30" dem I1 entsprechen. - Wofür steht das "n" in der Formel in "I3"? "n" wird nicht initialisiert. |
| Von Elac7 am 18.04.2001 um 14:12 |
Mist - jetzt sieht es so aus als ob die Formel in 5.) nur bis 2078 korrekt arbeitet..... Leider kann man hier nichts korrigieren! Also RICHTIGSTELLUNG: Die Formel unter 3.) arbeitet nur bis 2078 korrekt Die Formel unter 5.) ARBEITET IMMER KORREKT |
| Von Elac7 am 18.04.2001 um 14:08 |
Die unten angeführte Formel arbeitet nur bis zum Jahr 2078 korrekt (bin gerade draufgekommen). Hier eine Formel die man als AddIn für Excel benutzen kann und natürlich auch ins VB übernehmen kann. Function OSTERN(SuchJahr As Integer) As Date Dim n, a, u_b, m, q, w, o, p As Integer n = SuchJahr - 1900 a = n - Fix(n / 19) * 19 u_b = Fix((7 * a + 1) / 19) m = (11 * a + 4 - u_b) - Fix((11 * a + 4 - u_b) / 29) * 29 q = Fix(n / 4) w = (n + q + 31 - m) - Fix((n + q + 31 - m) / 7) * 7 o = 25 - m - w p = 4 If o |
| Von Elac7 am 18.04.2001 um 03:48 |
| Ups - Jahr muß in A1 stehen!!!! |
| Von Elac7 am 18.04.2001 um 03:47 |
In Excel funktioniert das: =DM((TAG(MINUTE(A1/38)/2+55)&".4."&A1)/7;)*7-6 |
| Von Manfred am 31.03.2001 um 16:09 |
| http://www.google.com/search?q=ostern+gau%DF&hl=de&lr= |
| Von Marius Hennecke am 24.01.2001 um 15:21 |
Gibt es vielleicht zu dieser Osterformel von Gauß irgendwo eine Seite im Netz, die diese etwas naeher erlaeutert? |