以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  日期计算天数的问题求助?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93257)

--  作者:zsslly
--  发布时间:2016/11/23 23:23:00
--  日期计算天数的问题求助?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:日期计算天数.table


如案例,如图:

表中有“购买日期”、“状态”、“结束日期”、“截止到今天的日数”四个列,我想实现从“购买日期”开始计算到今天的天数,代码如下:
Select Case e.DataCol.name 
    Case "购买日期"
        If e.DataRow.IsNull("购买日期") Then
            e.DataRow("截止到今天的日数") = Nothing
        Else
            Dim tp As TimeSpan = Date
.today - CDate(e.DataRow("购买日期"))
            e.DataRow("截止到今天的日数") = Math.Round(tp.TotalDays )
        End If
End Select
这样可以的,但事情总有结束的时间,当“状态”列中选择结束,并在“结束日期”中选择日期,此时“截止到今天的日数”就计算到“结束日期”,“截止到今天的日数”列刷新不变,代码应该怎么改?求老师大侠指点?
[此贴子已经被作者于2016/11/23 23:23:33编辑过]

--  作者:zsslly
--  发布时间:2016/11/23 23:24:00
--  
如图
图片点击可在新窗口打开查看此主题相关图片如下:qq截图20161123231420.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2016/11/24 8:39:00
--  
Select Case e.DataCol.name
    Case "购买日期","状态","结束日期"
        
        If e.DataRow.IsNull("购买日期") Then
            e.DataRow("截止到今天的日数") = Nothing
        Else
            Dim Enddate As Date = Date.today
            If e.DataRow("状态") = "结束" AndAlso e.DataRow.IsNull("结束日期") =False Then Enddate = e.DataRow("结束日期")
            Dim tp As TimeSpan = Enddate - CDate(e.DataRow("购买日期"))
            e.DataRow("截止到今天的日数") = Math.Round(tp.TotalDays )
        End If
End Select