Domino 9 und frühere Versionen > Entwicklung

Datumsvergleich in Script

(1/2) > >>

Don Pasquale:
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

wflamme:
CDat() vergleichen statt NotesDateTime, würde ich sagen.

forrest g:
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

Don Pasquale:

@wflamme

hatte ich vorher bereits probiert :-(

@Forrest g

Dim timediff As Long    
timediff = Dat1.TimeDifference(Dat2)

Das ist es.
Vielen Dank.

Ciao

Don Pasquale

wflamme:
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).

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln