Foxtable(狐表)用户栏目专家坐堂 → 求帮助 如何获取 一行当中 那个时间离当前时间最近


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

主题:求帮助 如何获取 一行当中 那个时间离当前时间最近

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


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
求帮助 如何获取 一行当中 那个时间离当前时间最近  发帖心情 Post By:2014/12/10 15:47:00 [只看该作者]

如题

 

如何获取 一行当中 那个时间离当前时间最近   那列内容 的列面

 

1行

  列1           列2           列3        列4       列5

8:00      12:00     15:40    9:30   15:34

 

我想获取  列3  这个信息。

 

不知道该怎么搞 指导下!

 

 

 

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/12/10 15:56:00 [只看该作者]

遍历列1-5  获取时间值,和当前时间相减, 取全部秒数.  获取其绝对值,一一对比. 取最小那个

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/12/10 15:59:00 [只看该作者]

Dim r As Tables("XX").Current
Dim d As Date = r("第一列")
Dim min As Integer

For Each c As Col In Tables("XX").Cols
    Dim t As TimeSpan = r(c.name)-Date.Now
    If abs(t.TotalSeconds)<min Then
        min = abs(t.TotalSeconds)
        d=r(c.name)
    End If
Next

MessageBox.show(d)

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


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2014/12/10 16:00:00 [只看该作者]

bin老师   如何对比呢?

 

例如  得出的结果是  50,40,30,26,28,39

 

该如何对比 能否化为数组 获取最小值,  但没找到 数组 有Min  这个属性! 再指点下


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/10 16:03:00 [只看该作者]

 3楼

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


加好友 发短信
等级:六尾狐 帖子:1368 积分:12189 威望:0 精华:0 注册:2012/3/5 11:32:00
  发帖心情 Post By:2014/12/10 16:30:00 [只看该作者]

测试结果不对 ,帮忙看下

 

Dim r As DataRow = DataTables("XX").DataRows(1)
Dim d As Date = r("第一列")
Dim min As Integer


For Each c As Col In Tables("XX").Cols
    Dim t As TimeSpan
    Dim p As Date = r(c.name)
  t =  p - Date.Now
    If Math.Abs(t.TotalSeconds) < min Then
        min = Math.Abs(t.TotalSeconds)
        d=r(c.name)
    End If
Next


MessageBox.show(d)

 

 

min不知道表示什么呢。

测试结果不行!


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/10 17:21:00 [只看该作者]

Dim r As Row = Tables("表A").Current
Dim d As Date = r("第一列")
Dim min As Double = Math.abs((cDate(r("第一列"))-Date.Now).TotalSeconds)


For Each c As Col In Tables("表A").Cols
    Dim t As TimeSpan = cDate(r(c.name))-Date.Now

    If Math.abs(t.TotalSeconds) < min Then
        min = Math.abs(t.TotalSeconds)
        d = r(c.name)
    End If
Next


MessageBox.show(d)


 回到顶部