以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  时间计算的精确性问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88548)

--  作者:douglas738888
--  发布时间:2016/8/4 17:46:00
--  时间计算的精确性问题
请教老师,下面代码,对时间的计算精确性不足,比如  计划开始时间是2016-08-01   计划完成时间是2016-08-01 ,实际完成时间是2016-08-01 20:00

得到的计算:任务天数是 0    任务效率是 -0.83     我想得到的计算结果应该是    任务天数 是1   任务效率是 0.17 (提前17%的时间完成)  

如果计划开始时间和计划完成时间 不是设置成DATETIME 这样的情况应该怎样调整精确性

Select Case e.DataCol.name   \'设计实际完成时间计算

    Case "计划完成时间","实际完成时间","计划开始时间"

        Dim dr As DataRow = e.DataRow

        If dr.IsNull("计划完成时间") Or dr.IsNull("实际完成时间") Then

           dr("任务效率") = Nothing

        Else

            Dim tp As TimeSpan = dr("计划完成时间") - dr("实际完成时间")

            dr("任务效率") = tp.Totaldays \'真正的时段型数据要转换为秒数,才能存入时段列

        End If

        Dim dr1 As DataRow = e.DataRow

        If dr1.IsNull("计划开始时间") Or dr1.IsNull("计划完成时间") Then

           dr1("任务天数") = Nothing

        Else

            Dim tp1 As TimeSpan = dr1("计划完成时间") - dr1("计划开始时间")

            dr1("任务天数") = tp1.Totaldays \'真正的时段型数据要转换为秒数,才能存入时段列

        End If

End Select





--  作者:大红袍
--  发布时间:2016/8/4 18:25:00
--  

1、你的时间列,要设置成 DateTime

 

2、 你的计划完成时间,应该是 2016-08-02 日才对啊。