2013-03-27 146 views
1

我已经使用lotusscript编写了一个代码来计算两个字段之间的时间差,现在我想计算日期之间的差异。我已经开始lotusscripting,我仍然有最低限度的知识。希望您能够帮助我。下面是我用来计算时间差的代码:Lotus Notes Domino获取日期差异

Sub UpdateDuration() 
Dim ws As New NotesUIWorkspace 
Dim uidoc As NotesUIDocument 
Dim starttime As NotesDateTime 
Dim endtime As NotesDateTime 
Dim duration As Integer 

Set uidoc = ws.CurrentDocument 
If uidoc.FieldGetText("StartTime") = "" Then 
    Exit Sub 
Elseif uidoc.FieldGetText("StartTime") = "" Then 
    Exit Sub   
End If 
Set starttime = New NotesDateTime(uidoc.FieldGetText("StartTime")) 
Set endtime = New NotesDateTime(uidoc.FieldGetText("EndTime")) 
duration = endtime.TimeDifference(starttime) 
Call uidoc.FieldSetText("Duration", Cstr(duration)) 
Call uidoc.Refresh() 
End Sub 

回答

3

TimeDifference返回两个NotesDateTime之间的秒数。一天中有60 * 60 * 24秒,可以达到86400.所以,只需按照上面的方式编写代码,然后将结果除以86400即可。(唯一可能需要更改的是您的字段和变量名称,以反映您使用日期输入而不是时间的事实。)

+0

非常感谢@Richard。我的代码现在正在输出日期。我从你那里学到了很多东西。 – drayl 2013-03-27 05:09:56

+0

此外 - 您需要将持续时间调长为Long,而不是Integer。否则,如果他们相隔半天,就会发生溢出。 – 2015-04-30 08:44:27