Ich habe ein Problem wegen der Zeitumstellung und hoffe hier auf Hilfe.
Es geht um ein Zeiterfassungssystem. Man hat 2 Tage Zeit seine AZ zu erfassen. Für den Freitag hat man 3 Tage Zeit, da am Montag für Freitag noch etwas geändert werden kann.
Bis wann ein Dokument bearbeitbar ist, wird in einem Extrafeld gespeichert. Dieses Feld nimmt den Freitag (Freitag, 27.10.06) und rechnet 3 Tage drauf. Also ist der Freitag am Montag (30.10.06) noch bearbeitbar.
Das hat auch alles wunderbar funktioniert, bis auf heute.
Heute (30.10.06) lege ich für Freitag (27.10.06) einen Tag an. Also rechnet mein Code auf den 27.10. 3 Tage rauf.
Das Problem an der Sache ist, dass ich nicht den 30.10. als Ergebnis bekomme, sondern den 29.10.06 23.00h! Ich rechne eigentlich nicht mit Uhrzeiten in diesem Fall, sondern nur mit Tagen. Trotzdem (cleveres System!) wird die Zeitumstellung erkannt.
Was muss ich wo und wie einstellen, dass:
27.10.06 + 3 Tage = 30.10.06
und nicht
27.10.06 + 3 Tage = 29.10.06 23.00h
Danke für Hinweise. Das ist ein Schnipsel des Codes:
Dim tag As New notesdatetime(Today)
' bearbeitbar bis wann?
' wenn bearbeitbar_bis = feiertag, dann noch ein tag mehr
If Weekday(tag.DateOnly) = 7 Then
Call tag.AdjustDay(2)
Do
feierindex = Arraygetindex(feierarray, Cstr(tag.DateOnly))
If Not Isnull (feierindex) Then
Call tag.AdjustDay(1)
End If
Loop Until Isnull (feierindex)
Else
If Weekday(tag.DateOnly) = 6 Then
Call tag.AdjustDay(3)
Do
feierindex = Arraygetindex(feierarray, Cstr(tag.DateOnly))
If Not Isnull (feierindex) Then
Call tag.AdjustDay(1)
End If
Loop Until Isnull (feierindex)
Else
Call tag.AdjustDay(1)
Do
feierindex = Arraygetindex(feierarray, Cstr(tag.DateOnly))
If Not Isnull (feierindex) Then
Call tag.AdjustDay(1)
End If
Loop Until Isnull (feierindex)
End If
End If