Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 06.01.03 - 17:48:09
-
Hallo Notes-Gemeinde,
ich habe ein Array, welches teilweise mit Datumswerten gefüllt ist,
dieses Array will ich auf- oder Absteigend nach diesen Datumswerten sortieren. soweit bin ich bisher gekommen, aber
danach verliessen sie ihn.
Wie vergleiche ich 2 String felder in denen ein Datum steht ?
Auszug aus dem Code :
...
Dim x As Integer
x = dc.Count
Dim Ersatz (1 To 2 ) As Variant
Dim AnArray ( )
Redim AnArray ( 1 To x, 1 To 2 ) As Variant
Set doc=dc.GetFirstDocument
i = 1
While Not (doc Is Nothing)
AnArray(i,1) = doc.e4fld_Doc_ID(0)
AnArray(i,2) = doc.e4ihk_DokumentDatum(0)
i = i + 1
Set doc = dc.GetNextDocument(doc)
Wend
For i = 1 To x-1
Dim Dat1 As New NotesDateTime( Cdat( AnArray(i,2) ))
Dim Dat2 As New NotesDateTime( Cdat(AnArray(i+1,2)))
If Dat1 < Dat2 Then
vielen dank
für eure hilfe
ciao
Don Pasquale
-
CDat() vergleichen statt NotesDateTime, würde ich sagen.
-
hallo don pasquale,
vorweg muss ich sagen, dass ich das ganze natürlich nicht mit deinem code testen konnte/wollte.
deshalb habe ich mir eine einfache form mit 4 feldern erstellt:
- 2 stringfelder vom typ text mit den datumswerten darin(per hand eingegeben)
- 2 datetimefelder vom typ date/time, computet mit @texttotime(stringfeld)
also der code geht folgendermassen weiter:
Dim timediff As Long
timediff = Dat1.TimeDifference(Dat2)
If (timediff < 0) Then
'Datum1 < Datum2
'Print"Datum1 < Datum2"
Msgbox"Datum1 < Datum2, dh Datum2 ist grösser"
Elseif (timediff > 0) Then
'Datum1 > Datum2
'Print"Datum1 > Datum2"
Msgbox"Datum1 > Datum2, dh Datum1 ist grösser"
Elseif (timediff = 0) Then
'Datum1 = Datum2
'Print"Spezialfall: beide Datumswerte sind gleich"
Msgbox"Wenn das sein kann, irgendwas dafür überlegen..."
End If
-
@wflamme
hatte ich vorher bereits probiert :-(
@Forrest g
Dim timediff As Long
timediff = Dat1.TimeDifference(Dat2)
Das ist es.
Vielen Dank.
Ciao
Don Pasquale
-
War mir auch nicht 100%ig sicher, aber irgendeine C... Funktion wird's mit Sicherheit schon tun, probier mal CDbl(CDat()) oder so. Ist höchstwahrscheinlich schneller als der Weg über's Objekt (sofern Zeitzonen keine Rolle spielen).
-
Du kannst auch die LSLocalTime Eigenschaft zum vergleichen benutzen.
LS ueberläd den groesser/kleiner operator...
till