В чем разница между myDate и Int (myDate) - PullRequest
0 голосов
/ 17 мая 2019

Я работаю над проектом, который должен понимать код VB, и я в особенности застрял в одной строке.

Я посмотрел в Google и попросил помощи у моего коллеги, но не нашел ответа.

Вот строка:

   BegHour = myDate - Int(myDate)

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Это на самом деле зависит от того, что объявлено myDate. Если мы можем предположить, что он объявлен как

Dim myDate As Date

тогда может содержать дату, включающую время yyyy-mm-dd hh:mm:ss.

Поскольку целой частью даты и времени является только дата без времени, например, если вы сделаете Int(myDate), вы получите только дату parte yyyy-mm-dd без времени.

Наконец, если вы вычтете дату из даты / времени BegHour = myDate - Int(myDate), вы получите только часть времени hh:mm:ss.

Почему это?

Фактически даты сохраняются как количество дней с 1900-01-01, которое считается 1. Например, 2019-05-17 - это номер дня 43602, начиная с 1900-01-01. Время является частью дня, поэтому 0.5 days означает 12 часов, например.

0 голосов
/ 17 мая 2019

Подумайте о сегодняшнем дне, в 18:00: "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:00 или 6pm и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...