当前位置: 首页 > news >正文

通过LotusScript中的NotesDateTime类来进行时间计算

大家好,才是真的好。

今天我们介绍的是时间日期处理,其实以前也讲过,主要是通过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 JAVASESSIONDim timerClass As JAVACLASSDim timerObject As JavaObjectDim diff As LongSet js = New JAVASESSIONSet timerClass = js.GetClass("ElapsedTime")Set timerObject = timerClass.CreateObjectCall 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 NothingSet note=view.Getnextdocument(note)	LoopCall timerObject.enddiff = timerObject.duration()MsgBox  "遍历所有设计元素总共花费" & CStr(diff) & " 毫秒."

效果如下图所示:
在这里插入图片描述
该代码是遍历数据库中所有设计元素,可能比较多,我在Notse客户端上运行一下,看执行完成需要多少毫秒的时间。
在这里插入图片描述
才297毫秒。

要是你用秒来计数,可能都是1或0。

该方式参考了站点:https://breakingpar.com/bkp/home.nsf/0/87256B280015193F87256EAF007B2235

今天就介绍到这里吧。

最后欢迎搜索公众号“协作者”来关注我。

http://www.lryc.cn/news/375916.html

相关文章:

  • 【前端面经】数组算法题解
  • java架构设计-COLA
  • 【进阶篇-Day3:JAVA接口新特性、代码块、内部类、Lambda表达式、组件等的介绍】
  • 72-UDP协议工作原理及实战
  • 数据结构——顺序表的实现
  • 【牛客面试必刷TOP101】Day33.BM70 兑换零钱(一)和BM71 最长上升子序列(一)
  • 重构与优化-优化函数调用(5)
  • 6月18日(周二)A股行总结:A股震荡收涨,车路云概念全日强势,10年、30年国债期货齐创新高
  • 今年的618,似乎很平淡!
  • 嵌入式中间件_3.嵌入式中间件的一般架构
  • Java基础 - 练习(二)打印菱形
  • 链表OJ--超详细解析
  • JavaFX 分隔符
  • mysql安装配置教程(Linux+Windows)
  • MySQL数据库与基本操作(增删改查)
  • 【学习总结】SpringBoot中使用单例模式+ScheduledExecutorService实现异步多线程任务(若依源码学习)
  • shell脚本编程(概念、编程和语句)
  • 设置角色运动的动画
  • OKR:2024年目标和关键成果常见问题
  • 轻量级 ioc/aop 框架 loveqq 1.0 发布,完全替换掉若依底层 spring 及其 starter
  • 【递归、搜索与回溯】DFS解决FloodFill算法
  • 【Spine学习12】之 事件帧
  • 【C语言习题】31.冒泡排序
  • 【Spring Cloud应用框架】
  • Repetition Improves Language Model Embeddings论文阅读笔记
  • 工具清单 - Bug追踪管理
  • 企业内网是如何禁用U盘的?电脑禁用U盘有哪些方法?
  • 怎样打印微信文档文件?
  • 【讲解下Pip换源】
  • 分享:2024年(第12届)“泰迪杯”数据挖掘挑战赛省级奖项获奖名单公示