Domino 9 und frühere Versionen > ND7: Entwicklung

Probleme beim Vergleich von Datumswerten

(1/3) > >>

oson00:
Hallo,

ich habe ein ganz merkwürdiges Phänomen. Ich hole mit aus zwei Feldern die Datumswerte und vergleich, welches größer ist.

Ich hole mir die Feldwerte in ein NotesDateTime Objekt und habe bereits probiert die Daten direkt mit .LSLocalTime, aber auch mit .TimerDifference zu vergleichen. Der gesamte Scriptcode steckt in einem Agenten, der aus einer Ansicht aufgerufen wird.

Wenn ich ihn normal laufen lasse, funktioniert das ganze überhaupt nicht, wenn ich debugge funktioniert's. Ich verstehe nicht warum. Hat jemand eine Idee?

koehlerbv:
Ohne Code lässt hierzu nur gaaaaanz schlecht etwas sagen.

Nur: Warum machst Du es Dir bei einem solchen Vergleich eientlich so kompliziert? Datumswerte sind eigentlich (!) nichts anderes als Zahlen in der internen Behandlung (Datumsseriennummern).

Wenn Du wissen möchtest, welcher Wert grösser ist, dann reicht folgendes LS-Konstrukt vollkommen:

If NotesDocument.EndDateTime (0) >= NotesDocument.StartDateTime (0) Then
   Messagebox "Der Endzeitpunkt ist grösser oder gleich dem Startzeitpunkt"
Else
   Messagebox "Der Endzeitpunkt ist kleiner dem Startzeitpunkt"
EndIf

Das Ganze lässt sich natürlich noch beliebig verfeinern ;-)

Haarig wird es erst dann, wenn Du Datums-/Zeitwerte aus unterschiedlichen Zeitzonen vergleichst - dann kommst Du um die NotesDateTime Class nicht herum.

HTH,
Bernhard

PS: Vor dem Dealen mit Datums-/Zeitwerten nicht vergessen zu prüfen, ob dies auch wirklich solche sind: IsDate ...

oson00:
Den Code habe ich absichtlich nicht mit gepostet, weil der durch meine Versuche mittlerweilen nicht mehr so schön ist. Ich räume nochmal auf und probiere die direkte Technik. Aber ganz allgemein sind keine Probleme bekannt beim vergleich von Datumswerte? Manchmal gibt es ja die dollsten Dinger in Notes...

oson00:
Leider funktioniert es nicht. :(

Hier mal ein Ausschnitt:

dim ndtstart as Variant
dim ndttmpstart as Variant
dim ndtEnd as Variant
dim ndttmpStop as Variant

...

ndtStart = doc.getItemValue("StartDatum")(0)
.
.
.

      If ndtstart <= ndttmpstart Then
         If ndtEnd >= ndttmpstop Then
            Print "Ich tu was..."
            

            ' ... in ein neues Backend-Dokument wird ein RT-Feld gefüllt...
         End If
      End If




Die Datumsfelder haben z.B. folgende Inhalte:

ndtstart: 03.08.2005
ndtend:  03.08.2006

ndttmpstart: 04.05.2006 14:30:59
ndttmpstop: 07.06.2006 14:45:08



Bin ich zu doof? Übersehe ich da was? Habe ich einen logischen Fehler gemacht? Wie gesagt, wenn ich Debugge, läuft der Debugger in den "Tu was"-Teil, ohne Debugge überspringt er den gesamten Bereich.

DerAndre:
Hi.

Schau Dir nochmal das Beispiel von Bernhard an und denk an die Überprüfung auf IsDate.

André

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln