myDate和Int(myDate)有什么区别

时间:2019-05-17 09:48:45

标签: excel vba

我正在一个需要理解VB代码的项目中,尤其是停留在一行上。

我看过Google并向同事寻求帮助,但找不到答案。

以下是一行:

   BegHour = myDate - Int(myDate)

2 个答案:

答案 0 :(得分:1)

这实际上取决于您声明的myDate。如果我们可以假设它被声明为

Dim myDate As Date

然后它可以包含一个包含时间yyyy-mm-dd hh:mm:ss的日期。

由于日期时间的整数部分仅是没有时间的日期,例如,如果您进行Int(myDate),则只会得到没有时间的日期部分yyyy-mm-dd

最后,如果减去日期时间BegHour = myDate - Int(myDate)的日期,则只会得到时间部分hh:mm:ss

为什么?

实际上,日期保存为自1900-01-01起算为1的天数。因此,举例来说,2019-05-17是自43602开始的天数1900-01-01。时间是一天的一部分,因此0.5天意味着12小时。

答案 1 :(得分:0)

想想今天,下午6点:"17/05/2019 18:00:00"

它以Date的形式保存-可以通过多种方式进行格式化,但由于自1899年以来的天数= 43602.75而保存在内存中

因此,如果myDate持有43602.75,则BegHour等于:

= 43602.75 - Int (43602.75)

= 43602.75 - 43602

= 0.75

如果将其视为DateTime,则可以将其格式化为读取18:006pm等。