大家好,才是真的好。
今天我们介绍的是时间日期处理,其实以前也讲过,主要是通过LotusScript中的NotesDateTime类来进行时间计算。
但是这里也存在一个问题:就是时间日期类的比较只能计算出秒,不能计算出毫秒。
毕竟有一句老话叫做“失之毫秒,谬之千里”。
很多人想计算得出代理程序执行所花的时间,有的代理程序一瞬间就执行完了,可能不到一秒,那我们就想知道它花了多少毫秒。
其实,没问题,notes也可以轻松实现,不过,采用的是Java代码方式,对的,Java比较容易计算出毫秒时间。
要实现该功能,首先在Notes数据库中新建一个Java脚本库,例如名字叫ElapsedTime,方代码选择Java,如下图所示:
等会我们可以在lotusssript中调用Java代码。这种方式,前面我们也介绍过,这种方式叫做叫LS2J。
接着刚才的Java代码库,打开之后,重命名为ElapsedTime.java,如下图:
双击打开,写上下面一段Java 代码:
import java.util.*;
public class ElapsedTime {
private Date startDate = new Date();
private Date endDate = new Date();
public void start() {
startDate = new Date();
}
public void end() {
endDate = new Date();
}
public long duration() {
long t1 = startDate.getTime();
long t2 = endDate.getTime();
long difference = t2 - t1;
return difference;
}
}
效果如下图所示:
没问题的话,就保存关闭。
接着,创建一个新的代理程序,选择编程语言LotusScript,如下图:
通过在(Options)中写入语句Uselsx "*javacon"和Use "ElapsedTime"来调用Java库:
接着写lotusscript代码:
Dim js As JAVASESSION
Dim timerClass As JAVACLASS
Dim timerObject As JavaObject
Dim diff As Long
Set js = New JAVASESSION
Set timerClass = js.GetClass("ElapsedTime")
Set timerObject = timerClass.CreateObject
Call timerObject.start
' ... Process here ...
Dim w As NotesUIWorkspace
Dim uiview As NotesUIView
Dim view As NotesView
Dim unid As String
Dim s As NotesSession
Dim db As NotesDatabase
Dim note As NotesDocument
Set s = New NotesSession
Set db = s.CurrentDatabase
Set view=db.GetView("allDesignElements")
Set note = view.Getfirstdocument()
Do Until note Is Nothing
Set note=view.Getnextdocument(note)
Loop
Call timerObject.end
diff = timerObject.duration()
MsgBox "遍历所有设计元素总共花费" & CStr(diff) & " 毫秒."
效果如下图所示:
该代码是遍历数据库中所有设计元素,可能比较多,我在Notse客户端上运行一下,看执行完成需要多少毫秒的时间。
才297毫秒。
要是你用秒来计数,可能都是1或0。
该方式参考了站点:https://breakingpar.com/bkp/home.nsf/0/87256B280015193F87256EAF007B2235
今天就介绍到这里吧。
最后欢迎搜索公众号“协作者”来关注我。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 通过LotusScript中的NotesDateTime类来进行时间计算
发表评论 取消回复