Foxtable(狐表)用户栏目专家坐堂 → [求助]关于时间列的统计(已解决)


  共有7972人关注过本帖树形打印复制链接

主题:[求助]关于时间列的统计(已解决)

帅哥哟,离线,有人找我吗?
rpg2813
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:2437 威望:0 精华:0 注册:2011/8/28 12:23:00
[求助]关于时间列的统计(已解决)  发帖心情 Post By:2012/4/10 0:50:00 [只看该作者]

如题,工作需要,我需要对时间列进行汇总、小计、统计

时间的格式为[hh]:mm

没有秒、年月日的说,23:01+1:59=25:00

现在累计值只能算数字

我的想法是把时间转换成数字?然后汇总时再转换回来?

不知道集体应该如何做?或者更好的方法?

[此贴子已经被作者于2012-4-15 13:33:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wuhuar
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:23 积分:257 威望:0 精华:0 注册:2011/5/3 11:44:00
  发帖心情 Post By:2012/4/10 8:24:00 [只看该作者]

Dim time1,time2 As String
Dim t1,t2 As Integer
time1="23:01"
time2="1:59"

t1=Cint(mid(time1,1,Instr(time1,":")-1))*60+Cint(mid(time1,Instr(time1,":")+1,2))
t2=Cint(mid(time2,1,Instr(time2,":")-1))*60+Cint(mid(time2,Instr(time2,":")+1,2))
output.show(t1+t2)

 

转换为分钟,后面你自己再转为小时+分钟就OK了,其实很多时间数据结构很重要


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/10 9:45:00 [只看该作者]

必须先转换为数字,然后统计,得出结果后,将数字转换为时间。

Dim sum As Double
For Each dr As DataRow In DataTables("表A").DataRows
    If dr.IsNull("时间") = False Then
       Dim v As Integer = math.Floor(dr("时间"))
        sum = sum + v * 60 + (dr("时间") - v) * 100
    End If
Next
Dim h As Integer = sum \ 60
Dim m As Integer = sum - h * 60
Return h & ":" & Format(m,"00")


 回到顶部
帅哥哟,离线,有人找我吗?
rpg2813
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:2437 威望:0 精华:0 注册:2011/8/28 12:23:00
  发帖心情 Post By:2012/4/13 20:58:00 [只看该作者]

以下是引用狐狸爸爸在2012-4-10 9:45:00的发言:

必须先转换为数字,然后统计,得出结果后,将数字转换为时间。

Dim sum As Double
For Each dr As DataRow In DataTables("表A").DataRows
    If dr.IsNull("时间") = False Then
       Dim v As Integer = math.Floor(dr("时间"))
        sum = sum + v * 60 + (dr("时间") - v) * 100
    End If
Next
Dim h As Integer = sum \ 60
Dim m As Integer = sum - h * 60
Return h & ":" & Format(m,"00")

试了代码不行

我现在在表A有一列时间列time格式,我希望第二列为数字列,能把时间列算成分钟数

[此贴子已经被作者于2012-4-13 20:58:29编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
rpg2813
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:2437 威望:0 精华:0 注册:2011/8/28 12:23:00
  发帖心情 Post By:2012/4/14 16:48:00 [只看该作者]

人工置顶……

 回到顶部
帅哥哟,离线,有人找我吗?
rpg2813
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:2437 威望:0 精华:0 注册:2011/8/28 12:23:00
  发帖心情 Post By:2012/4/15 12:57:00 [只看该作者]

只有再顶了……

 回到顶部
帅哥哟,离线,有人找我吗?
rpg2813
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:277 积分:2437 威望:0 精华:0 注册:2011/8/28 12:23:00
  发帖心情 Post By:2012/4/15 13:33:00 [只看该作者]

ok,搞定了

时间列为日期型,time;转换列为整数,就是把10:10这种时间格式转换为610分钟

我从vb的代码里找到的思路……希望大大把这个加到帮助吧,我搜索了论坛的帖子,挺多人找这个东西的说

如果帮助已经有了的话……额,那只能怪我没细看吧……

 

e.DataRow("转换") =Hour(e.DataRow("时间"))*60+Minute(e.DataRow("时间"))  


 


 回到顶部