以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]为什么合同期限值不对?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=116458)

--  作者:老鼠
--  发布时间:2018/3/25 1:57:00
--  [求助]为什么合同期限值不对?
这是代码:
If e.DataCol.Name = "终止日期" Then \'如果更改的是终止日期列内容
    If e.DataRow.IsNull("终止日期") Then \'判断终止日期列是否为空
        e.DataRow("合同期限") = Nothing  \'如果为空,则清除合同期限
    Else
        \'否则计算起始日期与终止日期间的间隔时间
        Dim y,m,d As Integer
        Dim dt1 As Date = e.DataRow("起始日期")
        Dim dt2 As Date = e.DataRow("终止日期")
        DateYMD(dt1,dt2,y,m,d)
        e.DataRow("合同期限") = y
    End If
End If
如果修改才能得到正确的值?如:2018年03月01日~2021年02月28日,应该是得到3;可是它计算得到的是2。终止日期是:2021年03月01日时却可以计算得到3.

--  作者:老鼠
--  发布时间:2018/3/25 15:02:00
--  
以下是引用老鼠在2018/3/25 1:57:00的发言:
这是代码:
If e.DataCol.Name = "终止日期" Then \'如果更改的是终止日期列内容
    If e.DataRow.IsNull("终止日期") Then \'判断终止日期列是否为空
        e.DataRow("合同期限") = Nothing  \'如果为空,则清除合同期限
    Else
        \'否则计算起始日期与终止日期间的间隔时间
        Dim y,m,d As Integer
        Dim dt1 As Date = e.DataRow("起始日期")
        Dim dt2 As Date = e.DataRow("终止日期")
        DateYMD(dt1,dt2,y,m,d)
        e.DataRow("合同期限") = y
    End If
End If
如果修改才能得到正确的值?如:2018年03月01日~2021年02月28日,应该是得到3;可是它计算得到的是2。终止日期是:2021年03月01日时却可以计算得到3.
 
其实我想要的结果就是:周年的计算(2017年01月01日~2017年12月31日)=1周年;而不应该是:(2017年01月01日~2018年01月01日)=1周年

[此贴子已经被作者于2018/3/25 15:02:20编辑过]

--  作者:pyh6918
--  发布时间:2018/3/25 15:35:00
--  

终止日期 = 终止日期+1天

然后再计算


--  作者:有点甜
--  发布时间:2018/3/25 15:54:00
--  
If e.DataCol.Name = "终止日期" Then \'如果更改的是终止日期列内容
    If e.DataRow.IsNull("终止日期") Then \'判断终止日期列是否为空
        e.DataRow("合同期限") = Nothing  \'如果为空,则清除合同期限
    Else
        \'否则计算起始日期与终止日期间的间隔时间
        Dim y,m,d As Integer
        Dim dt1 As Date = e.DataRow("起始日期")
        Dim dt2 As Date = e.DataRow("终止日期").AddDays(1)
        DateYMD(dt1,dt2,y,m,d)
        e.DataRow("合同期限") = y
    End If
End If

--  作者:老鼠
--  发布时间:2018/3/25 16:29:00
--  

首先感谢!其次出现这个错误提示窗口内容:.NET Framework 版本:2.0.50727.5477
Foxtable 版本:2018.3.1.1
错误所在事件:表,聘用明细, DataColChanged
详细错误信息:
调用的目标发生了异常。
未找到类型“Date”的公共成员“Addadys”。


--  作者:老鼠
--  发布时间:2018/3/25 16:34:00
--  

问题已经解决,感谢!但我却不明白也找不到AddDays()这个代码的意义????

[此贴子已经被作者于2018/3/25 16:35:10编辑过]

--  作者:有点甜
--  发布时间:2018/3/25 22:15:00
--  
以下是引用老鼠在2018/3/25 16:34:00的发言:

问题已经解决,感谢!但我却不明白也找不到AddDays()这个代码的意义????

[此贴子已经被作者于2018/3/25 16:35:10编辑过]

 

3楼已经说明了问题,addDays的意义,请参考

 

http://www.foxtable.com/webhelp/scr/0260.htm

 

http://www.foxtable.com/webhelp/scr/1337.htm