以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  天数统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25505)

--  作者:ramen
--  发布时间:2012/11/10 14:17:00
--  天数统计
请高手指点一下,我想输入开始日期和结束日期,然后就能自动统计天数。我看了教程,参考了里面工龄的算法,我想要根据服务器的月份自动计算,因为有一些月份不是30天的,有的31、有的29,如果可以跟着服务器这样算出来就不会出错。
      例如2012年9月25日到2012年10月11,跨月份的,计算出来的天数有可能出错,不知道代码怎么设置好?请教一下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:天数计算.table

[此贴子已经被作者于2012-11-10 14:18:30编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/10 14:47:00
--  
 楼主说的跨月份计算有可能出错?应该没有这个可能的。
--  作者:ramen
--  发布时间:2012/11/10 14:49:00
--  
这样啊,那就行,可以看看你是怎么设置代码的吗?就我附件的例子
--  作者:lin_hailun
--  发布时间:2012/11/10 14:56:00
--  
如下
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:天数计算.table



--  作者:ramen
--  发布时间:2012/11/10 16:21:00
--  

[此贴子已经被作者于2012-11-10 16:49:33编辑过]

--  作者:ramen
--  发布时间:2012/11/10 16:49:00
--  回复:(lin_hailun)如下 [upload=table,天数计...
有个问题,就是这个代码算出来的天数会少一天,麻烦看一下。
Select Case e.DataCol.Name
    Case "开始日期", "结束时间"
        Dim d As TimeSpan = e.DataRow("结束时间") - e.DataRow("开始日期") 
        e.DataRow("合计") = d.TotalDays
End Select

--  作者:ramen
--  发布时间:2012/11/10 17:06:00
--  
“结束时间”-“开始时间”+1=“合计天数”
   代码应该怎么设置呢?

--  作者:lin_hailun
--  发布时间:2012/11/10 17:09:00
--  
 楼主,最后加一天就行了。

 e.DataRow("合计") = d.TotalDays + 1

--  作者:czy
--  发布时间:2012/11/10 19:53:00
--  

也可以这么写

 

Select Case e.DataCol.Name
    Case "开始日期", "结束时间"
        If e.DataRow.IsNull("开始日期") = False And e.DataRow.IsNull("结束时间") = False
            e.DataRow("合计") =  DateDiff("d",e.DataRow("开始日期"),e.DataRow("结束时间")) + 1
        End If
End Select


--  作者:ramen
--  发布时间:2012/11/11 9:52:00
--  
好的,谢谢你!