Domino 9 und frühere Versionen > ND7: Entwicklung
Schaltjahr - Was ist mit dem Jahr 1700 los ??
eknori:
Carsten, Danke für deine Bemühungen und die Erklärung.
koehlerbv:
Naja, das mit den "Konvertierungen zwischen LS und Formelsprache" würde ich jetzt nichts so sehen.
Beide Sprachvarianten greifen ja auf die Notes-API zurück, aber die NotesDateTime class ist einfach ... komisch.
Deine Beobachtungen im Debugger weisen daher genau auf den Kern.
Mehr dazu auf dem EntwicklerCamp. Und ich brauche die Klasse de facto überhaupt nicht.
Ich greife jetzt mal dem EntwicklerCamp voraus. Wenn wir auf die NotesDateTime class verzichten, dann sieht der Code so aus:
--- Code: ---Sub Click (Source As Button)
Dim iYear As Integer
Dim vDate As Variant
On Error Goto ErrorRoutine
iYear = 1700
vDate = Datenumber (iYear, 3, 1)
vDate = vDate - 1
If Day (vDate) = 29 Then
Print "Schaltjahr: " & Cstr (iYear)
Else
Print "KEIN Schaltjahr: " & Cstr (iYear)
End If
Exit Sub
ErrorRoutine:
Call ErrorHandler ("Button")
Exit Sub
End Sub
--- Ende Code ---
Und schon klappt es mit dem Nachbarn. ;)
Ich tippe: Der Wrapper für die Klasse (und für @functions, aber das habe ich selbst noch nicht getestet - das hat ja Carsten schon gemacht - DANKE!) hat einen Schuss.
Bernhard
PS: Ich habe diese Tests übrigens zuerst unter Notes R5.0.8 gemacht. Das Thema ist also nicht neu ;D
flaite:
--- Zitat von: koehlerbv am 21.01.08 - 21:12:31 ---Beide Sprachvarianten greifen ja auf LS zurück, aber die NotesDateTime class ist einfach ... komisch.
--- Ende Zitat ---
Wieso das? Imho ist beides in C implementiert. Formelsprache war ja auch eher da.
Ich vermute, die haben einfach Schaltjahr-Regel 2 des gregorianischen Kalenders vergessen.
* Alle Jahre, die durch 4 ohne Rest teilbar sind, sind Schaltjahre.
* Alle Jahre, die durch 100 ohne Rest teilbar sind, sind keine Schaltjahre.
* Alle Jahre, die durch 400 ohne Rest teilbar sind, sind wiederum Schaltjahre.
koehlerbv:
Axel - lies Dir bitte die von Ulrich dokumentierten Fehlerfälle durch. Du wirst sehen - so einfach ist es nicht.
A-Bär (und ich habe mein Posting dahingehend geändert - DANKE für den Hinweis, Axel): Ich meinte natürlich nicht "LS", sondern die API.
Bernhard
flaite:
Hab ich durchgelesen.
Regel 2 passt auf 1700, 1500, 1400, 1300, 1100 und 1000
1200 und 1600 scheinen zu funktionieren wie nach dem Gregorianischen Kalender in der frühen Neuzeit spezifiziert. Das ist Regel 3. Regel 3 hebt Regel 2 auf.
Vielleicht haben die für die Zeit nach der Boston Tea Party ein paar Spezialregeln eingeführt.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln