以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于时间问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=81984)

--  作者:pcxjxjhkw
--  发布时间:2016/3/9 17:36:00
--  [求助]关于时间问题

已知有两日期,开始日期D1,结束日期D2,

问题:输出从开始到结束每年共多少个月?

 

如:开始时间2005-08-09,结束时间2008-03-15

输出:2005年8个月,2006年12月,2007年12个月,2008年3个月

 

如何写代码,谢谢


--  作者:大红袍
--  发布时间:2016/3/9 18:45:00
--  
Dim d1 As Date = "2005-08-09"
Dim d2 As Date = "2016-09-01"
output.show(12-d1.Month)
For i As Integer = d1.Year + 1 To d2.Year - 1
    output.show(12)
Next
output.show(d2.Month)

--  作者:pcxjxjhkw
--  发布时间:2016/3/9 19:54:00
--  

当两个日期是同一年呢


--  作者:Hyphen
--  发布时间:2016/3/10 8:35:00
--  
参考:http://www.foxtable.com/help/topics/2648.htm
--  作者:大红袍
--  发布时间:2016/3/10 10:04:00
--  
Dim d1 As Date = "2005-08-09"
Dim d2 As Date = "2006-09-01"
If d1.year = d2.year
    output.show(d2.Month - d1.month)
ElseIf d2.year > d1.year
    output.show(12-d1.Month)
    For i As Integer = d1.Year + 1 To d2.Year - 1
        output.show(12)
    Next
    output.show(d2.Month)
End If