Domino 9 und frühere Versionen > Entwicklung

Datum in Zahl umwandeln

<< < (2/2)

koehlerbv:
Hallo Axel,

ich habe eben mal einen Uralt-Code (1997) herausgesucht:


--- Code: --- Set itemCutOffDate = docSetup.GetFirstItem ("CutOffDate")
Set dtCutOffDate = itemCutOffDate.DateTimeValue                'convert the item to a NotesDateTime object
vCutOffDate = dtCutOffDate.LSLocalTime              'convert the NotesDataTime to a variant

--- Ende Code ---

Wie bescheuertumständlich war ich damals ?
Das Ganze geht auch in einer Zeile:
vCutOffDate = docSetup.CutOffDate (0)

Mit der Zeit wird man eben weiser - und dafür ist ja auch das Forum da  :)

Dann habe ich mal eine Routine von Ende 2004 herausgesucht, die nach Übergabe zweier NotesItems vom Typ Date/Time die Diffenrenz in Minuten berechnet:


--- Code: ---Name GetTimeDifferenceMin
Type Function
Parameters vStartTime As Variant
vEndTime As Variant
Return Type Double

Lotuscript
'++LotusScript Development Environment:2:1:GetTimeDifferenceMin:1:8
Function GetTimeDifferenceMin (vStartTime As Variant, vEndTime As Variant) As Double
'==================================================================================================================
' Purpose: Calculates the time difference between two given Date/Time values (normally the time component only)
'----------------------------------------------------------------------------------------------------------------------------
' Arguments:
' vStartTime - should be a Date / Time value
' vEndTime - should be a Date / Time value. If vEndTime is 0:00 it will be converted to 24:00 (= 1) !
'----------------------------------------------------------------------------------------------------------------------------
' Returns: The time difference in minutes if both values are Date/Time values (otherwise 0)
'----------------------------------------------------------------------------------------------------------------------------
' Created by:  Bernhard Koehler on 13.12.2004            Modified by:
'----------------------------------------------------------------------------------------------------------------------------
' Changes:
'==================================================================================================================

Dim dblDifference As Double


On Error Goto ErrorRoutine

'The default value:
GetTimeDifferenceMin = 0

'Check for valid Date/Time values:
If Not (Isdate (vStartTime)) Or Not (Isdate (vEndTime)) Then
Exit Function
End If

'Because we can't store 24:00 in Notes we use 0:00 and have to convert this value to 24:00 = 1
If vEndTime = 0 Then
vEndTime = 1
End If

dblDifference = vEndTime - vStartTime

dblDifference = dblDifference * 24 * 60

GetTimeDifferenceMin = dblDifference

Exit Function

ErrorRoutine:
GetTimeDifferenceMin = 0
Call ErrorHandler ("GetTimeDifferenceMin")
Exit Function
End Function

--- Ende Code ---

Dieses Beispiel soll zeigen, wie man auf des Pudels Kern zurückkommt: Datums-/Zeitangaben sind schlichte Double-Zahlen. Wie aber auch schon erwähnt: Wenn es um die Berücksichtigung von Zeitzonen u.ä. geht, dann kann das wohl Notes, aber dafür werden in einem DT-Object dann auch mehr Informationen zur Verfügung gestellt. Unsere schlichte Datumsseriennummer reicht dann nicht mehr !

Also wie immer: Jedes Werkzeug, wo es hingehört.

Bernhard

wflamme:
Die Schlußfolgerung stimmt nicht so ganz: Im Backend werden immer nur normalisierte UTC-Werte gespeichert, bei der Visualisierung guckt Notes aufs OS und dessen Zeitzonenvorgaben (bei R5 konnte man das -glaube ich- noch einstellen) und rechnet die UI-Werte entsprechend um - an Komfort kaum zu toppen (wenn man noch berücksichtigt daß Notes dem User die Anzeige zusätzlicher Zeitzonen in Kalenderansichten gestattet).

Also, alles was man da an Code zur (scheinbaren) Ausnahmebehandlung hinzupfriemelt, kann's unterm Strich oft nur schlechter machen. Ich empfehle da http://www.dominopower.com/issuesprint/issue200205/travel0502.html[/urll]  und [url]http://www.ibm.com/Search/?q=180001&v=14&lang=en&cc=us&Search.x=0&Search.y=0&Search=Search, wenn man sich mit Zeitzonenfragen, Sommerzeit und Versionskompatibilität beschäftigen muß/will.

Hoschi2503:
Hallo,

erstmal vielen Dank für Eure Hilfe. Damit kann ich schon eine Menge anfangen. :)

Gruß & schönes Wochenende
Christian

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln