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
%REM
Parameters:
===========
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
%END REM
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
This was last published in May 2003

Dig Deeper on LotusScript

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.

-ADS BY GOOGLE

SearchWindowsServer

Search400

  • iSeries tutorials

    Search400.com'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 ...

SearchEnterpriseLinux

SearchDataCenter

SearchExchange

SearchContentManagement

Close