我正在尝试计算两个日期之间的天数以及是否整整一个月。
我目前有这段代码:
Dim fromdate As Date
Dim todate As Date
Dim timespan
Dim num_days As String
Dim month As DateTime
fromdate = Date.Parse("01/01/2017")
todate = Date.Parse("31/01/2017")
TimeSpan = todate - fromdate
num_days = TimeSpan.Days
MsgBox(num_days)
然后我试着弄清楚它是否整整一个月:
month = todate
If (month.Month = "02" And num_days = "28") Or num_days = "29" Or num_days = "30" Or num_days = "31" Or num_days = "0" Then
'do code here
Else
'do code here
End If
但事实证明这在二月份没有用,因为它只看到num_days
为27
有没有办法可以在两个日期之间获得正确的天数,包括日期本身为完整日期?
我如何检查它是否是一个完整,正确的月份
更新
这样做的目的是为了一个计费系统,所以文件被读入带有from和to日期的数据库,然后它需要计算这些日期的定价。
因此,产品具有特定价格,但首先我们需要确定是否为部分月份或整月收费(基本上是产品价格的一部分或全价)
因此,这些“完整月份”日期范围示例将按全价计算
整月:
然而,“零件月”的这个日期范围只会计算从到目前为止(+1天)之间的天数
部分月
答案 0 :(得分:2)
这将得到您指定的内容:
Dim IsOneFullMonth = (d1.Day = 1 And d2 = d1.AddMonths(1).AddDays(-1))
Dim IsOnMonthLater = (d2 = d1.AddMonths(1))
这两个国家在我的理解中并不是一回事 第二次检查是一个月和一天。 (第一个匹配'1月1日 - 1月31日',第2个匹配'1月1日 - 2月01'。)
另外请注意,这两项检查都不会与2016-02-29
- 2016-03-31
的“月末”相匹配 - 您必须真正定义您希望在这些情况下实现的目标。