水晶报表 给一个秒数算出时间

jwy0126 2010-05-12 03:19:12
比如说我给一个秒数 值60 ,水晶报表如何用函数计算出 0小时1分钟0秒,要这种效果。
...全文
139 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwy0126 2010-05-13
  • 打赏
  • 举报
回复
以上均感谢。
东莞寻香苑 2010-05-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 luols 的回复:]

h := t / 3600;
m := Truncate(t / 60) mod 60;
s := t mod 60;

CStr(Truncate(h),0) + '小时' + CStr(m,0) + '分钟' + CStr(s,0) + '秒'

再次修改,看来以后得好好像测试部的人学习。
[/Quote]
我也是一样感谢你,你的程序更简单
我在你的基础改写了
numberVar h;
numberVar m;
numberVar s;
numberVar t := {DeviceCountTable.RunTimes};
h := t \ 3600;
m := t \ 60 mod 60;
s := t mod 60;
CStr(h) + '小时' + CStr(m) + '分钟' + CStr(s) + '秒'
阿双2009 2010-05-13
  • 打赏
  • 举报
回复
h := t / 3600;
m := Truncate(t / 60) mod 60;
s := t mod 60;

CStr(Truncate(h),0) + '小时' + CStr(m,0) + '分钟' + CStr(s,0) + '秒'

再次修改,看来以后得好好像测试部的人学习。
Thank csui2008 again..
阿双2009 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 csui2008 的回复:]
这个分钟计算的不对,可能会大于60
[/Quote]

嗯,不好意思,谢谢csui2008指正!!
应该改正如下

numberVar h;
numberVar m;
numberVar s;

numberVar t := 3800;

h := t / 3600;
m := (t / 60) mod 60;
s := t mod 60;

CStr(Truncate(h),0) + '小时' + CStr(Truncate(m),0) + '分钟' + CStr(s,0) + '秒'


再次感谢指正!!!
阿双2009 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 csui2008 的回复:]
这个分钟计算的不对,可能会大于60
[/Quote]

呵呵,你试下就知道了
东莞寻香苑 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luols 的回复:]

C# code

numberVar h;
numberVar m;
numberVar s;

numberVar t := 90;

h := t / 3600;
m := t / 60;
s := t mod 60;

CStr(Truncate(h),0) + '小时' + CStr(Truncate(m),0) + '分钟' + CStr(s,0) + '秒'



这是在“Cr……
[/Quote]

这个分钟计算的不对,可能会大于60
东莞寻香苑 2010-05-12
  • 打赏
  • 举报
回复
WhileReadingRecords;
NumberVar h:=0;
NumberVar m:=0;
NumberVar s:=0;
NumberVar temp:=0;
s:= {DeviceCountTable.RunTimes} mod 60;
temp:={DeviceCountTable.RunTimes}\60;
m:=temp mod 60;
temp:=temp\60;
h :=temp mod 60;
ToText (h) +"小时"+ ToText(m)+"分钟"+ToText(s)+"秒"

现在可以了
阿双2009 2010-05-12
  • 打赏
  • 举报
回复

numberVar h;
numberVar m;
numberVar s;

numberVar t := 90;

h := t / 3600;
m := t / 60;
s := t mod 60;

CStr(Truncate(h),0) + '小时' + CStr(Truncate(m),0) + '分钟' + CStr(s,0) + '秒'


这是在“Crystal语法”下写的。
jwy0126 2010-05-12
  • 打赏
  • 举报
回复
你的方法并不能显示成 8小时10分钟10秒钟格式,我已经把RunTime用CDbL转换了。你的方法转换后有小数点。
jwy0126 2010-05-12
  • 打赏
  • 举报
回复
EN,谢谢。
东莞寻香苑 2010-05-12
  • 打赏
  • 举报
回复
WhileReadingRecords;
NumberVar h:=0;
NumberVar m:=0;
NumberVar s:=0;
NumberVar temp:=0;
s:= {DeviceCountTable.RunTimes} mod 60;
temp:={DeviceCountTable.RunTimes}/60;
m:=temp mod 60;
temp:=m/60;
h :=m mod 60;
ToText (h) +":"+ ToText(m)+":"+ToText(s)

请确定DeviceCountTable.RunTimes是数值类型的,不然要转换
最后一句返回的这个时间
jwy0126 2010-05-12
  • 打赏
  • 举报
回复

Dim h as number
Dim m as number
Dim s as number
Dim temp1 as number

s = {DeviceCountTable.RunTimes} % 60
temp1 = {DeviceCountTable.RunTimes} / 60

m = temp1 % 60
h = temp1 / 60
这样写的在水晶报表通不过,如何写呢?
jwy0126 2010-05-12
  • 打赏
  • 举报
回复
我是准备用取余的方法,有没有更好的方法呢?

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧