Datumsvergleich Lotusscript

  • Hallo
    ich lese 2 Datumsfelder aus einem Dokument aus (docy) und möchte dann in einer Schleife (Do until) Berechnungen durchführen solange das erste Datum kleiner als das Enddatum ist.
    Das Startdatum wird in der Schleife immer um 1 Tag erhöht (Startdate_d.adjustday) und die Schleife sollte solange durchlaufen werden bis das Startdatum gleich dem Enddatum ist.
    Das funktioniert innerhalb eines Monats gut, beim wechsel in ein neues Monat wird die Schleife verlassen.
    Wer hat eine Idee wo der Fehler liegt?
    Danke



    Dim ws As notesuiworkspace
    Dim s As New NotesSession
    Dim viewy As Notesview
    Dim viewx As NotesView
    Dim db, dby As NotesDatabase
    Set db = s.currentdatabase
    Dim docy As NotesDocument



    Dim Startdate As Variant
    Dim Enddate As Variant
    Dim Startdate_d As NotesDateTime
    Dim item As notesitem
    Dim Enddate_d As NotesDateTime


    Set dby = s.GetDatabase("yyyxxxww","Allgemein\\db.nsf",False)
    Set viewy = dby.getview("yyy")
    Set viewx = db.getview("xxx")

    Set docy = viewy.getfirstdocument

    ....
    Startdate = docy.GetItemValue("Startdate")

    Set item = docy.Getfirstitem("Startdate")
    Set Startdate_d = item.Datetimevalue

    Enddate = docy.GetItemValue("Enddate")
    Set item = docy.Getfirstitem("Enddate")
    Set Enddate_d = item.Datetimevalue


    'Schleife von Startdate bis Enddate mit folgendem Fehler wenn das startdataum im Vormonat liegt
    ' zB Startdatum 21.09.2014 Enddatum 08.10.2014 --> Abbruch bei Startdate_d=01.10.2014 (das do until sollte bis zum 08.10.2014 weiterlaufen)


    Do Until Startdate_d.dateonly <= docWf.Enddate(0)
    ' Berechnungen etc.....
    Call Startdate_d.adjustday(1) ' um einen Tag hochzählen
    Loop

  • Auszug aus der Hilfe zu "dateonly":


    Read-only. A string representing the date part of a date-time, in the local time zone.


    Und 01.10 ist nun mal leider kleiner als 31.09 (also rein im String- Vergleich)...


    Arbeite mit Variant- Datentyp, dann ist das viel einfacher:


    Das funktioniert, weil Datumswerte intern ganz einfach als Zahlen gespeichert werden, und das erhöhen um 1 zählt einen Tag hoch. Ich empfehle Dir den -bereits mehrfach bei EntwicklerCamps gehaltenen- Vortrag von Bernhard Köhler "Notes und die Zeit", siehe hier