以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求帮助 如何获取 一行当中 那个时间离当前时间最近  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61299)

--  作者:ljh29206
--  发布时间:2014/12/10 15:47:00
--  求帮助 如何获取 一行当中 那个时间离当前时间最近

如题

 

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

 

1行

  列1           列2           列3        列4       列5

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

 

我想获取  列3  这个信息。

 

不知道该怎么搞 指导下!

 

 

 

 


--  作者:Bin
--  发布时间:2014/12/10 15:56:00
--  
遍历列1-5  获取时间值,和当前时间相减, 取全部秒数.  获取其绝对值,一一对比. 取最小那个
--  作者:Bin
--  发布时间: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
--  发布时间:2014/12/10 16:00:00
--  

bin老师   如何对比呢?

 

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

 

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


--  作者:有点甜
--  发布时间:2014/12/10 16:03:00
--  
 3楼
--  作者:ljh29206
--  发布时间: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不知道表示什么呢。

测试结果不行!


--  作者:有点甜
--  发布时间: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)