以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 代码修改 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=111831)
|
-- 作者:jick0526
-- 发布时间:2017/12/29 21:58:00
-- 代码修改
老师,请问下下面的代码如果要改成查相差几个月份,代码要怎么改,谢谢!
Select Case e.DataCol.Name Case "开始日期","完成日期" Dim dr As DataRow = e.DataRow If dr.IsNull("开始日期") OrElse dr.IsNull("完成日期") Then dr("执行天数") = Nothing Else Dim tp As TimeSpan = dr("完成日期") - dr("开始日期") dr("执行天数") = tp.TotalDays End If End Select
|
-- 作者:有点蓝
-- 发布时间:2017/12/29 22:16:00
--
Dim y,m,d As Integer Dim dt1 As Date = dr("开始日期") Dim dt2 As Date = dr("完成日期") DateYMD(dt1,dt2,y,m,d) dr("执行天数") = y * 12 + m
|
-- 作者:jick0526
-- 发布时间:2018/1/2 19:02:00
--
老师,什么的代码执行后出现这个错误提示 此主题相关图片如下:1.png
|
-- 作者:jick0526
-- 发布时间:2018/1/2 19:07:00
--
|
-- 作者:cd_tdh
-- 发布时间:2018/1/2 20:06:00
--
要求不是非常准确,你可以按照每个月30.4167天计算月就可以了。dr("执行天数") = tp.TotalDays / 30.4167
[此贴子已经被作者于2018/1/2 20:07:58编辑过]
|
-- 作者:cd_tdh
-- 发布时间:2018/1/2 20:22:00
--
或试试 Dim dr As DataRow = e.DataRow Dim y,m,d As Integer Dim dt1 As Date = dr("开始日期") Dim dt2 As Date = dr("完成日期") DateYMD(dt1,dt2,y,m,d) dr("执行天数") = y * 12 + m
[此贴子已经被作者于2018/1/2 20:22:06编辑过]
|
-- 作者:jick0526
-- 发布时间:2018/1/2 20:48:00
--
老师,我想要达到的效果是有效月份(包括月份的数量)不考虑天数,例如下面表格,麻烦老师帮我修改下,谢谢!开始日期 | 结束日期 | 有效月份 | 20171121 | 20180213 | 4 | 20180205 | 20180629 | 5 |
比如第一行20171121-20180213 这个时间段里面包括了11月,12月,1月,2月,所以有效月份是4 第二行20180205-20180629 这个时间段里面包括了02月,03月,04月,05月,06月,所以有效月份是5
Select Case e.DataCol.Name Case "开始日期","完成日期" Dim dr As DataRow = e.DataRow If dr.IsNull("开始日期") OrElse dr.IsNull("完成日期") Then dr("执行天数") = Nothing Else Dim tp As TimeSpan = dr("完成日期") - dr("开始日期") dr("执行天数") = tp.TotalDays End If End Select
|
-- 作者:cd_tdh
-- 发布时间:2018/1/2 21:12:00
--
6楼代码执行结果是什么?
少了一个月,你在表达式后面+1就可以了
[此贴子已经被作者于2018/1/2 21:21:37编辑过]
|
-- 作者:jick0526
-- 发布时间:2018/1/2 21:21:00
--
会已30天为参照+四舍五入,比如 2018-04-30至2018-05-02 显示结果会是0,但我想要的结果应该是2,因为有4月和5月另外一个是 2018-10-28 至 2018-12-02 显示是1,显示结果会是,1,但我想要的结果应该是3,因为有10月和11月和12月
|
-- 作者:cd_tdh
-- 发布时间:2018/1/2 21:24:00
--
对的,明天电脑上试试看了调试
[此贴子已经被作者于2018/1/2 21:24:51编辑过]
|