我遇到了关于在两个日期之间获得月份差异的问题。 这是一个示例:
DateDiff("m","2014-10-17","2014-10-30")
上述代码返回0个月,因为它不到一个月。但是,
DateDiff("m","2014-10-17","2014-11-01")
返回1,因为它仍然是15天,所以不应该是。
我的问题是我想知道这两个日期是否已经超过一个月,但似乎只有在日期的月份部分发生变化时才计算1个月。
答案 0 :(得分:2)
DateDiff
使用第一个参数中定义的精度计算两个时间戳之间的跨度。根据您在问题和评论中的描述,您似乎正在寻找类似的东西:
ds1 = "2014-10-17"
ds2 = "2014-10-30"
d1 = CDate(ds1)
d2 = CDate(ds2)
diff = DateDiff("m", d1, d2)
If diff > 0 And Day(d2) < Day(d1) Then diff = diff - 1
WScript.Echo diff & " full months have passed between " & ds1 & " and " & ds2 & "."
答案 1 :(得分:0)
您可以使用&#39; DateDiff(&#34; d&#34;,date1,date2)&#39;来计算两个日期之间的日差。 然后计算30天的全月数。
以下是一个例子。
monthDiff = int(DateDiff("d","2014-10-17","2014-11-01") / 30)
如您所知,几个月的月份因月而异。例如,11月有30天,12月有31天。
如果您希望在11月的第一天使用每月30天,并且在12月的第一天每月使用31天,则代码需要一个月的日期表和处理月份信息的例行程序。< / p>