以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  日期的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=11519)

--  作者:blackzhu
--  发布时间:2011/8/1 8:28:00
--  日期的问题
2011-4-30  到 2011-6-2            按照我们做法利用datediff   可以算出 M月数    d天数


但是这个 时间段按照上面的算法,月数是2个月  天数是33天,但是实际的是1个月多三天.所以如果我有三个列

周期月数      周期天数     多余天数

    1               33             3

这个怎么做?因为每一个月的天数是不同的?



--  作者:don
--  发布时间:2011/8/1 8:31:00
--  
参照Format大师的年月日(易表)算法
--  作者:blackzhu
--  发布时间:2011/8/1 8:43:00
--  
不明白,能举个例子吗?
--  作者:狐狸爸爸
--  发布时间:2011/8/1 8:49:00
--  
算出月数后,用第一个日期加上这个月数(AddMonths),如果大于第二个日期,那么正确的月数就是这个月数减1
[此贴子已经被作者于2011-8-1 8:49:33编辑过]

--  作者:don
--  发布时间:2011/8/1 8:50:00
--  
Dim n1,n2 As Integer
Dim d1,d2,d As Date
d1 =#4/30/2011#
d2=#6/2/2011#
n1=datediff("m",d1,d2)
d=d1.AddMonths(n1)

n1=n1- iif(d2<d,1,0)
Output.Show(n1) 


--  作者:blackzhu
--  发布时间:2011/8/1 8:51:00
--  
我研究一下


--  作者:blackzhu
--  发布时间:2011/8/1 8:58:00
--  
但是我如何判断这个月的天数呢,我还要算多余的天数的呀
--  作者:don
--  发布时间:2011/8/1 9:00:00
--  
d2-d1.Addmonths(n)
--  作者:blackzhu
--  发布时间:2011/8/1 9:17:00
--  
我怎么算出来多余天数是5天.不对的吧?
--  作者:狐狸爸爸
--  发布时间:2011/8/1 9:33:00
--  
Dim n1,n2 As Integer
Dim d1,d2,d As Date
d1 =#4/30/2011#
d2=#6/2/2011#
n1=datediff("m",d1,d2)
d = d1.AddMonths(n1)
n1= n1 - iif(d2<d,1,0)
Output.Show("月数:" & n1)
output.show("多余天数:" & (d2 - d1.AddMonths(n1)).Totaldays)