Manage Learn to apply best practices and optimize your operations.

Readable time values

This tip describes how to display user-friendly time values.

When working with LotusScript using Variants of type DateTime, time-only values get the "default" date component 1899.12.30 prefixed, while date-only values get the "default" time component 12:00:00 AM suffixed.

Function SetValidDateTime(varDateTime 
As Variant, Byval fieldName As String, doc 
As  NotesDocument, dateTimeStyle as Integer)
 As Integer
varDateTime - variant of type (hopefully) 
LS DateTime

fieldName - string value for name of field 
that is to receive datetime value in varDateTime

doc - NotesDocument object to be updated

dateTimeStyle - integer value that controls how 
varDateTime will be saved to document, specifically if
True = Date Only
False = Time Only
Any other integer = Date and Time
Dim funcReturn As Integer
Dim whoCares As Variant
On Error Goto errHandle

fieldName = Trim$(fieldName)

If fieldName = "" Then
funcReturn = True 'generic error
Goto endFunc
End If

If doc Is Nothing Then
funcReturn = True 'generic error
Goto endFunc
End If

If Isdate(varDateTime) Then
Select Case dateTimeStyle
Case True 'Date component only
whoCares = Evaluate({FIELD } & fieldName
 & { := } & fieldName & 
 {;@Setfield("} & fieldName
& {"; [} & Cstr (Year(varDateTime)) & {/} & Cstr(Month(varDateTime))
& {/} & Cstr(Day(varDateTime)) & {])}, doc) Case False 'Time component only whoCares = Evaluate({FIELD } & fieldName & { := } & fieldName & {;@Setfield("} & fieldName & {"; [} & Cstr(Hour(varDateTime)) & {:} & Cstr(Minute (varDateTime)) & {:} & Cstr(Second (varDateTime)) & {])}, doc) Case Else 'Both Date and Time components doc.ReplaceItemValue fieldName, varDateTime End Select Else doc.ReplaceItemValue fieldName, "" 'Or you could simply not do anything here... End If Goto endFunc errHandle: 'Print "(SetValidDateTime) Error # " & Cstr(Err) & " occured on line " & Cstr(Erl) & ": " & Error funcReturn = Err Resume endFunc endFunc: SetValidDateTime = funcReturn 'If False, no error End Function

Dig Deeper on LotusScript

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.




  • iSeries tutorials's tutorials provide in-depth information on the iSeries. Our iSeries tutorials address areas you need to know about...

  • V6R1 upgrade planning checklist

    When upgrading to V6R1, make sure your software will be supported, your programs will function and the correct PTFs have been ...

  • Connecting multiple iSeries systems through DDM

    Working with databases over multiple iSeries systems can be simple when remotely connecting logical partitions with distributed ...