"一年中的哪一天(y)"和"日(d)"在VBA日期函数,如DateDiff?

时间:2018-01-04 20:39:57

标签: vba excel-vba excel

我无法理解"一年中的哪一天(y)"和"日(d)" VBA interval函数中DateDiff参数的选项。

在什么情况下(例如d1d2的样本值),以下行会得到不同的结果?

Debug.Print DateDiff("d", d1, d2)
Debug.Print DateDiff("y", d1, d2)

1 个答案:

答案 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使用VarFormatDateTimehttps://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函数Messageboxhttps://msdn.microsoft.com/en-us/library/windows/desktop/ms645505(v=vs.85).aspx)的包装器。您可以传递API参考或头文件中记录的任何参数,VB只是传递它。 VB的帮助中只列出了一些相关的。

重要

请记住,唯一的保证是VB帮助文件中所述的内容。这就是合同 - 你按照它说的做,它会按照它在帮助中所说的做。一般来说,它只承诺一件有限的细节。以上都是实施细节。你不能依赖它。您将VB语句视为黑盒子。随着Windows的更改,您的旧程序会随之自动更改。