我无法理解"一年中的哪一天(y)"和"日(d)" VBA interval
函数中DateDiff
参数的选项。
在什么情况下(例如d1
和d2
的样本值),以下行会得到不同的结果?
Debug.Print DateDiff("d", d1, d2)
Debug.Print DateDiff("y", d1, d2)
答案 0 :(得分:1)
d
是一个月中的某一天
y
是一年中的某一天
d
实际上是众所周知的月份日期。我不得不说,在44年的编程中,无论是否使用计算机进行会计,我都从未见过使用过的日常工作。但在可能是文化的事情。在澳大利亚,您每两周(每两周)获得报酬并支付租金。没有一种编程语言知道两周是什么。还有一个月(4周)。
这就是帮助说的。
要计算date1和date2之间的天数,您可以使用 无论是一年中的某一天(“y”)还是一天(“d”)。当间隔是工作日(“w”)时, DateDiff返回两个日期之间的周数。如果是date1 在星期一,DateDiff计算星期一到date2的数量。 它计算date2但不计算date1。但是,如果间隔是周(“ww”), DateDiff函数返回之间的日历周数 两个约会。它计算date1和date2之间的星期日数。 如果日期落在星期日,DateDiff会计算date2;但它不算数 date1,即使它确实属于星期日。
来自VB6 / VBA / VBS帮助(三者中的相同段落)。
Microsoft Basics使用OLE自动化功能。 FormatDateTime
使用VarFormatDateTime
(https://msdn.microsoft.com/en-us/library/windows/desktop/ms221554(v=vs.85).aspx)来调用国际功能的Windows API,例如GetTimeFormat
(例如https://msdn.microsoft.com/en-us/library/windows/desktop/dd318130(v=vs.85).aspx)
要获得完整的文档,您需要阅读所有三个级别的文档。
EG VB的Msgbox
是API函数Messagebox
(https://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx)的包装器。您可以传递API参考或头文件中记录的任何参数,VB只是传递它。 VB的帮助中只列出了一些相关的。
重要强>
请记住,唯一的保证是VB帮助文件中所述的内容。这就是合同 - 你按照它说的做,它会按照它在帮助中所说的做。一般来说,它只承诺一件有限的细节。以上都是实施细节。你不能依赖它。您将VB语句视为黑盒子。随着Windows的更改,您的旧程序会随之自动更改。