以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教日期计算表达式  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=19780)

--  作者:zhaoji
--  发布时间:2012/5/21 15:07:00
--  请教日期计算表达式
 请问如何计算两个日期间的年期,例如 2012/5/21和2013/5/20  算出年期为1.0,用什么表达式可以计算?

--  作者:狐狸爸爸
--  发布时间:2012/5/21 15:20:00
--  

用代码:

 

Dim dt1 As Date = #5/21/2012#
Dim dt2 As Date = #5/20/2013#
Dim yas As Integer = dt2.year - dt1.year


--  作者:zhaoji
--  发布时间:2012/5/21 15:58:00
--  
谢谢。
另外请问任意两个日期都可以吗,比如:合同起始日2010/5/1,结束日 2012/8/31, 算出合同期为2.4年。

--  作者:zhaoji
--  发布时间:2012/5/21 16:10:00
--  
如何用表达式列计算出任意两个日期间的合同期呢:
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2012/5/21 18:04:00
--  

可以:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目389.table


--  作者:zhaoji
--  发布时间:2012/5/21 20:47:00
--  
 谢谢狐爸
--  作者:seal51
--  发布时间:2013/9/14 17:27:00
--  

如果把合同的有效月数更改为合同的有效天数,如何改呢


--  作者:Bin
--  发布时间:2013/9/14 17:35:00
--  
Dim dt1 As Date = #5/21/2012#
Dim dt2 As Date = #5/20/2013#
Dim t As TimeSpan=dt2-dt1
messagebox.show(t.TotalDays)  

年月日都显示的话参考这里 http://www.foxtable.com/help/topics/2648.htm

--  作者:seal51
--  发布时间:2013/9/14 17:43:00
--  

知道了, 用示例三就可以了

 

上面的例子是根据开始日期和执行天数计算完成日期,如果反过来,要根据开始日期和完成日期计算执行天数,可以将DataColChanged事件代码设置为:

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


--  作者:ZHX241806
--  发布时间:2013/9/15 6:47:00
--  

很好,实用