标题:[求助]时间计算的问题
只看楼主
zero07
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-5-10
 问题点数:0 回复次数:8 
[求助]时间计算的问题
dtm是一个日期时间型减另一个日期时间型得来的秒数,以下是天,时,分的计算公式
tian=ALLTRIM(STR(INT(dtm/(60*60*24))))
shi=ALLTRIM(STR(INT(MOD(dtm,(60*60*24))/(60*60))))
fen=ALLTRIM(STR((dtm/60)%60))
假如dtm=32400时,为什么有时取余数时会等于60?
搜索更多相关主题的帖子: dtm STR INT ALLTRIM 时间 
2006-09-08 09:08
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
得分:0 

我算了几次,不会呀。


两人行已有我师……
2006-09-08 09:50
linwm
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-7-18
得分:0 
我也算过了,没问题。

2006-09-08 09:58
zero07
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-5-10
得分:0 

这是我的代码
fots_condition=fots_name+'="'+a1+'"'
_sqlfetch(fots_table2,fots_condition)
if used('sqlfetch')
select * from sqlfetch into array fot
for i=1 to alen(fot,1)
select * from db_fiesta where rq=ttod(fot(i,7)) into cursor ifld
select ifld
if .not. eof()
dt3=fot(i,8)-fot(i,7)
dtm3=dtm3+dt3
else
if dow(fot(i,7))=1 .or. dow(fot(i,7))=7
dt2=fot(i,8)-fot(i,7)
dtm2=dtm2+dt2
else
dt1=fot(i,8)-fot(i,7)
dtm1=dtm1+dt1
endif
endif
use
endfor
tian1=ALLTRIM(STR(INT(dtm1/(60*60*24))))
shi1=ALLTRIM(STR(INT(MOD(dtm1,(60*60*24))/(60*60))))
fen1=ALLTRIM(STR((dtm1/60)%60))
tian2=ALLTRIM(STR(INT(dtm2/(60*60*24))))
shi2=ALLTRIM(STR(INT(MOD(dtm2,(60*60*24))/(60*60))))
fen2=ALLTRIM(STR((dtm2/60)%60))
tian3=ALLTRIM(STR(INT(dtm3/(60*60*24))))
shi3=ALLTRIM(STR(INT(MOD(dtm3,(60*60*24))/(60*60))))
fen3=ALLTRIM(STR((dtm3/60)%60))
messagebox(tain1+'天'+shi1+':'+fen1+chr(13)+chr(10)+tain2+'天'+shi2+':'+fen2+chr(13)+chr(10)+tain3+'天'+shi3+':'+fen3)
else
messagebox('找不到记录')
endif


2006-09-08 10:35
zero07
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-5-10
得分:0 
就是出现我所问的问题,理解不了,郁闷......

2006-09-08 10:37
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:0 
nSeconds=32400 &&总秒数
nDays=INT(nSeconds/86400) &&1天=86400秒
nHours=INT((nSeconds-nDays*86400)/3600) &&1小时=3600秒
nMinutes=INT((nSeconds-nDays*86400-nHours*3600)/60) &&1分=60秒
nSeconds1=MOD(nSeconds,60) &&秒才是应该用取余函数计算的
?nDays,nHours,nMinutes,nSeconds1

而且用你的代码(修改了部分笔误)测试也没有问题的
tian1=ALLTRIM(STR(INT(dtm1/(60*60*24))))
shi1=ALLTRIM(STR(INT(MOD(dtm1,(60*60*24))/(60*60))))
fen1=ALLTRIM(STR((dtm1/60)%60))
tian2=ALLTRIM(STR(INT(dtm2/(60*60*24))))
shi2=ALLTRIM(STR(INT(MOD(dtm2,(60*60*24))/(60*60))))
fen2=ALLTRIM(STR((dtm2/60)%60))
tian3=ALLTRIM(STR(INT(dtm3/(60*60*24))))
shi3=ALLTRIM(STR(INT(MOD(dtm3,(60*60*24))/(60*60))))
fen3=ALLTRIM(STR((dtm3/60)%60))
messagebox(tian1+'天'+shi1+':'+fen1+chr(13)+chr(10)+tian2+'天'+shi2+':'+fen2+chr(13)+chr(10)+tian3+'天'+shi3+':'+fen3)

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-09-08 11:18
zero07
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-5-10
得分:0 
版主,用你的公式也是一样的问题......

2006-09-08 13:34
zero07
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-5-10
得分:0 


2006-09-08 13:34
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
得分:0 
从没有出现过你所说的问题。我算的结果是0 9 0 0,不知道你算的结果是多少?

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-09-08 15:39



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




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

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