Dim d1 As Date = Tables("合同").Current("计息开始时间")
Dim d2 As Date = Tables("合同").Current("计息结束时间")
Dim d As Date = d1
Do While d < d2
Dim r As Row = Tables("利息").AddNew()
r("客户编号")=Tables("合同").Current("客户编号")
r("客户名称")=Tables("合同").Current("客户名称")
r("合同编号")=Tables("合同").Current("合同编号")
r("本金")=Tables("合同").Current("本金")
r("付息方式")=Tables("合同").Current("付息方式")
r("方式")=Tables("合同").Current("方式")
r("利率")=Tables("合同").Current("利率")
r("合同现状")=Tables("合同").Current("合同现状")
r("本期起息日") = d
If d.Month = 2 AndAlso d.Day = Date.DaysInMonth(d.year,2)
d = new Date(d.year,3,31)
Else
d=d.Addmonths(1)
End If
If d > d2 Then
d = d2
End If
r("本期结息日") = d
Dim Days As Integer =Date.DaysInMonth(d.year,d.month)
Select Case d.month
Case 1, 3, 5, 7, 8, 10, 12 ' AndAlso d.day = 30
d = New Date(d.year,d.month,days)
r("本期结息日")=new Date(d.year,d.month,31)
End Select
Loop
老大帮我看看,当时我用此代码解决了上面的问题,我是用生成的数据,判断本期起息日和本期结息日为大月的时候,日期为31号,一点问题都没有.但又有一个问题产生,如果合同是大月而且是30号开始的,那么怎么能做到如下效果.
现有效果:
合同表 利息表
计息开始时间 计息结束时间 本期起息日 本期结息日
2011-5-30 201-09-30 2011-5-30 2011-06-30
2011-06-30 2011-07-31
2011-07-31 2011-08-31
2011-08-31 2011-09-30
我要的效果:
合同表 利息表
计息开始时间 计息结束时间 本期起息日 本期结息日
2011-5-30 201-09-30 2011-5-30 2011-05-31
2011-05-31 2011-06-30
2011-06-30 2011-07-31
2011-07-31 2011-08-31
2011-08-31 2011-09-30
你看第一二行的效果.
请帮忙!