您现在的位置: 中国教育学习网 >> 电脑教育 >> 程序设计 >> PowerBuiler >> 正文

如何统计两个时点的时间差

日期:2005-12-12 13:14:12 点击: 来自:不详 作者:佚名 【字体: 【加入收藏】
问:
现在做一个小系统,有两个字段为datetime类型,另外一个字段为这两个字段数值的差,就是想知道迟到了多长时间,然后根据迟到时间罚钱,我不知道两个时间相减该是什么类型的数据。其次我可否让得到的结果以小时为单位显示,这样乘以每小时的罚金就可以得到总的罚金!

答:
说明,adtm_start和adtm_end分别是你要比较的日期
long ll_total_seconds, ll_day_adjust
date ld_sdate, ld_edate
time lt_stime, lt_etime

ld_sdate = date(adtm_start)
ld_edate = date(adtm_end)

lt_stime = time(adtm_start)
lt_etime = time(adtm_end)

//86400为一天的总秒数
If ld_sdate = ld_edate then
ll_total_seconds = secondsafter( lt_stime,lt_etime)
Elseif ld_sdate < ld_edate Then
ll_total_seconds = SecondsAfter(lt_stime,Time('23:59:59'))
ll_day_adjust = DaysAfter(ld_sdate,ld_edate) -1
If ll_day_adjust > 0 Then ll_total_seconds = ll_total_seconds + 86400 * ll_day_adjust
ll_total_seconds = ll_total_seconds + SecondsAfter(Time('00:00:00'),lt_etime) +1
Else //end date < start date
ll_total_seconds = SecondsAfter(lt_stime,Time('00:00:00'))
ll_day_adjust = DaysAfter(ld_sdate,ld_edate) +1
If ll_day_adjust < 0 Then ll_total_seconds = ll_total_seconds + 86400 * ll_day_adjust
ll_total_seconds = ll_total_seconds + SecondsAfter(Time('23:59:59'),lt_etime) -1
end If

ll_total_seconds就是最终的秒数的差,然后除以3600就是小时了。OK、

GoogLe AD Sense
PowerBuiler热门 Hot
PowerBuiler推荐 Commend
  • 此栏目下没有推荐教程
More..GoogLe AdSense
版权所有:中国教育学习网 未经授权禁止复制或建立镜像 建议使用:1024*768分辨率,16位以上颜色、 Netscape6.0、IE5.0以上版本浏览器
CopyRight ® 2005-2008 www.cn-education.com online services. all rights reserved. ICP备案:冀ICP备05021141号
联系方式:EMAIL: cn-education@163.com QQ:47167701 教育网站长QQ交流群60041790