Книга: VBA для чайников
Математика дат и времени
Математика дат и времени
Сложение и вычитание дат в рамках обычных арифметических операций в VBA возможны, но, к сожалению, результаты такого сложения и вычитания не соответствуют обычным представлениям о датах. Например, #3/19/2005# - #3/19/2004#н е дает в результате '"1 год", как желательно было бы иметь, а дает #12/3 0/1900#. Такой результат обусловлен спецификой представления значений дат в VBA, но я не собираюсь здесь утомлять вас обсуждением этой специфики. Все, что вам нужно, - это знать о существовании в VBA двух функций, DateAdd ( ) и DateDiff ( ), которые должны полностью удовлетворить ваши потребности в математике дат. Использование этих функций обсуждается в главе 11.
В противоположность датам, использование обычных арифметических операций со значениями времени дает правильные результаты. Взгляните, например, на выражения в следующем фрагменте программного кода:
Di m date Then A s Date
dateThen = #07:15 AM# + #12:00# ' = #07:15:00 PM#
dateThen = #07:15:00 AM# - #0:15 AM# ' = #07:00:00 AM#
dateThen = #07:15:15 AM# + #0:0:30 AM# ' = #07:15:45 AM#
В этом примере показан минимум того, что можно напечатать. Как всегда, VBA конвертирует введенные данные в полноформатное буквальное значение времени, например #0:0:30 АМ# превратится в #12 : 00 : 30 АМ#. И еще (как показано в представленном примере): если вы хотите получить правильные результаты при использовании арифметических операций со значениями времени, то используемые при этом переменные должны явно объявляться как переменные типа Date.
- Ввод дат
- Решетка «упразднить – снизить – повысить – создать»
- Типы данных для работы с датой и временем
- Уменьшение времени, необходимого для резервного копирования и восстановления
- Ограничение времени ожидания для транзакций (Lock timeout)
- Использование CAST() с типами дата
- Рекламодатели
- Глава 7. Дата и время
- Сохранение рабочей книги с именем, представляющим собой текущую дату
- «Высшая математика» в тексте
- От издательства
- 7.12. Объективизация времени