在像DateDiff这样的VBA日期函数中,“day of year(y)”和“Day(d)”有什么区别? [关闭]

问题描述 投票:-1回答:1

我无法理解VBA interval函数中DateDiff参数的“day(y)”和“Day(d)”选项之间的差异。

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

Debug.Print DateDiff("d", d1, d2)
Debug.Print DateDiff("y", d1, d2)
vba excel-vba excel
1个回答
1
投票

d是一个月的日子y是一年中的一天

d实际上是众所周知的月份日。我不得不说,在44年的编程中,无论是否使用计算机进行会计,我都从未见过使用过的日常工作。但在可能是文化的事情。在澳大利亚,您每两周(每两周)获得报酬并支付租金。没有一种编程语言知道两周是什么。还有一个月(4周)。

这就是帮助说的。

要计算date1和date2之间的天数,您可以使用日期(“y”)或日期(“d”)。当interval为Weekday(“w”)时,DateDiff返回两个日期之间的周数。如果date1属于星期一,则DateDiff会计算到date2的星期一数。它计算date2但不计算date1。但是,如果interval是Week(“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的更改,您的旧程序会随之自动更改。

© www.soinside.com 2019 - 2024. All rights reserved.