标题:[求助]关于计算时间差的问题
只看楼主
soritong
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-3
 问题点数:0 回复次数:7 
[求助]关于计算时间差的问题

各位大虾请问下,在填表的时候,如何在输入两个不同时间段后。自动计算时间差?

如:第一时间:12/03/06 08:30:00AM
第二时间:12/03/06 07:30:00PM
间隔时长:???????



谢谢,在线等~~

搜索更多相关主题的帖子: 时间差 间隔 时间段 
2006-12-03 17:41
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
直接相减即可。

活到老,学到老! http://www. E-mail:hu-jj@
2006-12-03 19:26
pogai
Rank: 1
等 级:新手上路
威 望:1
帖 子:90
专家分:0
注 册:2006-3-3
得分:0 
这个有点难算啦。
第二时间减去第一时间所得到的数值就是间隔时长的秒数。假设为d的话。
d/3600/24所得到的数值就是间隔时长的天数,
d/3600%24所得到的数值就是不够一天的小时数。假设为t的话。
可能我说的是错的。
如果再要细分成多少小时多少分多少秒的话,自己再用t的值去和时间的相关数值细分,我也不会的换算了。数学太垃圾啦!
2006-12-03 19:31
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 

是我没有说详细:如果是都是日期数的话,直接相减后得到的是多少天;如果是都是时间数的话,就要以分隔符为标志,将时、分、秒提取出来进行相减,例如时间数d1,d2都是以TT:MM:SS表示的,则val(subs(d2,4,2))-val(subs(d1,4,2))则表示两个时间分的差,再加上时的差就可以判断出来了,计算起来是比较麻烦。


活到老,学到老! http://www. E-mail:hu-jj@
2006-12-03 19:54
soritong
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-3
得分:0 

日期和时间操作符

下列操作符作用于日期和时间。



相加 tNewTime = tTime1 + nSeconds
dNewDate = dDate1 + nDays


相减 nSeconds = tTime1 - tTime2
tNewTime = tTime1 - nSeconds
dNewDate = dDate1 - nDays

去帮助查找到这个相关的代码。但具体怎么用就不知道,因为我想在一个表单中只填上第一时间和第二时间。然后生成的报表中间隔时间就是已经计算出来的。这个想法能不能实现?应该怎么去操作呢?

2006-12-03 20:33
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
得分:0 
其实一点也不难,关键看你的要求,如果只要求到天数那就十分容易实现:把两个日期相减就得了。
如果要求计算出两个日期相差多少年多少月多少天多少小时多少秒,那也不难:两者相减把得到秒数与每年、每月、每天、每小时的秒数进行相除取整和模运算就可以了。
当然还有方法,如把日期和时间分别取出来进行计算等多种办法,但这得注意诸如07年2月减06年8月这类问题的转换。

两人行已有我师……
2006-12-04 08:38
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:0 

parameters t1,t2
private t1,t2,tt,ts,tday,thour,tminute,tsecond
if vartype(t1)!="T" or vartype(t2)!="T"
return "********"
endif
tt=int(abs(t1-t2)+0.5)
ts=iif(t1>t2,1,iif(t1=t2,0,-1))
tday=int(tt/24/3600) &&days
thour=int((tt-tday*24*3600)/3600) &&hours
tminute=int((tt-tday*24*3600-thour*3600)/60) &&minutes
tsecond=mod(tt,60) &&seconds
return padl(tday,6,"0")+"-"+padl(thour,2,"0")+":"+padl(tminute,2,"0")+":"+padl(tsecond,2,"0")


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-12-04 10:58
soritong
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-12-3
得分:0 

谢谢各位啊~

2006-12-04 19:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-107010-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.331368 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved