Читаем VBA для чайников полностью

В VBA есть несколько простых операторов и функций для работы с системной датой и системным временем, т.е. со значением даты и времени, которое изменяется и хранится встроенными часами компьютера.

Функция Now возвращает текущие системные дату и время в формате переменной типа Data, как, например, в случае datЛовиМомент = Now.

Чтобы обеспечить работу с системным временем и системной датой по отдельности, VBA предлагает по паре отдельных команд для каждого из этих двух элементов системы. Несколько неожиданным при этом оказывается то, что в каждой из пар и оператор, и функция имеют одинаковые имена.

Например, чтобы извлечь (т.е. получить) системное время в формате даты VBA, нужно использовать функцию Time, а чтобы установить (т.е. задать) системное время, необходимо использовать оператор Time. Другими словами, ключевое слово Time выполняет различные действия в зависимости от контекста:

datЭтоMoeBpeмя = Time ' функция Time возвращает значение

' системного времени

Time (113:15 АМ#) ' оператор Time устанавливает системное время

Подобным образом работают и различаются соответствующие функции Date и оператор Date.

<p>Исчисление дат</p>

Как вы знаете, время - понятие относительное. Поэтому главное - получить дату и время в таком виде, чтобы сравнить их с другими датами и временем. Иногда нужно знать, как далеко отстоят одна дата от другой или одно время от другого. А иногда бывает нужно знать, какая дата будет, скажем, через два года и три месяца. Несколько предлагаемых в VBA функций для обработки значений дат и времени превращают вычисления с датами в совсем простое дело.

Используйте функцию DateAdd, когда нужно узнать, какая дата наступит через три года или что было на часах один час и пятнадцать минут тому назад. Такие вычисления можно выполнить и без компьютера вообще, но они требуют особой внимательности, поскольку операции с компонентами значений дат и времени не подчиняются правилам привычной арифметики десятичных чисел (дней недели - 7, секунд - 60, и т.д.), да и самих компонентов наберется немало.

Функция DateAdd имеет следующий синтаксис: DateAdd (интервал, число, начальная_дата).

Возвращаемое функцией значение равно значению, полученному в результате добавления к начальной дате (или начальному времени) заданного числа интервалов. Если нужна разность, а не сумма, задайте для аргумента число отрицательное значение. В табл. 11.5 приведен набор символьных кодов, которые допустимы для аргумента интервал (при использовании не забудьте заключить соответствующий код в кавычки).

Таблица 11.5. Значения аргументов функций DateAdd и DatDiff

уууу Год

q Квартал

rа Месяц

у День года

d День

w День недели

ww Неделя

h Час

n Минута

s Секунда

Например, в результате выполнения оператора

datБыло = DateAdd ("s", -90, Now)

переменная datБыло будет содержать значение, соответствующее времени, которое было 90 секунд тому назад относительно текущего времени. Если вам нужно отобразить на экране только ту часть этого значения, которая относится ко времени, используйте функцию Format с соответствующим времени аргументом форматирования (например, Format (datБыло, "Medium time ")), как было описано в разделе "Форматирование данньк".

При этом функция DateAdd не возвращает недопустимых значений дат: если добавить один месяц к дате 31 августа, то результатом будет 30 сентября. Точно так же функция DateAdd не забудет, если нужно, изменить в результате и год.

С помощью функции DateAdd можно добавлять или вычитать некоторое число однотипных интервалов, но, например, для выяснения даты, которая была два года и три месяца назад, ничто не мешает применить эту функцию дважды.

В качестве альтернативы VBA предлагает для дат и времени две другие функции, которые позволяют смешивать интервалы,- Date Serial и TimeSerial. Каждая из этих функций имеет по три аргумента;

DateSerial (год, месяц, день]

TimeSerial (часы, минуты, секунды)

Все аргументы в данном случае обязательны и должны быть выражениями, дающими целые значения (а не значения типа Date). Посмотрите, можете ли вы сказать, что будет получено в результате выполнения следующего фрагмента программного кода, и обратите внимание на вычисления в третьем аргументе:

intГод = 1999

intМесяц = 12

intДень = 3 1

datНовоеТысячелетие = DateSerial (intГод, intМесяц, intДень + 1)

И, конечно же, любые из этих аргументов или даже все могут быть просто числами.

Используйте функцию DateDiff, чтобы выяснить, сколько определенных интервалов времени (годы, месяцы, недели и т.п.) помещается между двумя заданными датами или моментами времени. Например:

lngСколько = DateDiff ("m", #2/12/90#, #10/12/01#)

В результате выполнения этого оператора переменная lngСколько - переменная типа Long - будет содержать число месяцев, прошедших между двумя указанными датами. Для первого аргумента функция DateDiff требует код интервала времени, и в данном случае "m" сообщает функции о том, что нужно измерять в месяцах, а не в годах, неделях или каких-либо других единицах.

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

Программирование, программы, базы данных / Программирование / Книги по IT