【发布时间】:2014-08-07 13:33:12
【问题描述】:
我需要在 VB 中找出 2 个日期的月份和天数之间的差异。使用DateDiff() 函数,我没有得到想要的结果,因为DateDiff() 只减去了相应的值。例如:
DateDiff("m", '31/01/2012', '1/02/2012')
返回 1 个月,这是不正确的。我如何做到这一点?
【问题讨论】:
-
期望的结果是什么?你想要只计算天数的结果还是?
-
1 天,在上述示例的情况下为 0 个月。我想要月份和日期形式的结果。例如:如果开始日期是 2012 年 1 月 31 日,结束日期是 2012 年 5 月 3 日,我需要 1 个月零 5 天作为答案。
-
为此,您的“月”应包含多少天? 30、31、28、29?
-
您将需要创建一个自定义函数来返回该类型的信息,方法是将天数 转换为月部分和日部分。您的自定义函数需要考虑每个月的天数(例如,2 月 1 日至 4 月 3 日为 63 天,结果为 2 个月 3 天——而 4 月 1 日至 6 月 4 日为 64 天,但也会为 2 个月 3 天)。您还需要考虑闰年...
-
@RitwikDey 是的,你可以,但会更困难(再次)。例如。
Month(d1) - Month(d2)仅在d1和d2属于同一年份时才有意义。DateDiff处理所有这些。另见this discussion。