Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект лекций по программированию.doc
Скачиваний:
168
Добавлен:
22.03.2016
Размер:
1.09 Mб
Скачать

10. Функции даты и времени. Объект Timer

В Visual Basic имеются функции для работы с датами и временем.

Текущую дату возвращает функция Date. Значение даты представляется в виде тройки чисел Месяц.Число.Год, разделенных точками. Разностью зна­чений переменных типа Date является число дней между датами.

Функция Time возвращает значение те­кущего времени, которое можно присвоить переменным типа Long. Значение времени представляется в виде тройки чисел Часы: Минуты: Секунды, разделенных знаком «:».

Функция Now возвращает значение те­кущей даты и времени. Эта функция используется в качестве аргумента для других функций времени, представленных в табл.10.

Таблица 10. Функции даты и времени

Функция

Возвращаемое значение

Hour(Now)

час данного момента времени (от 0 до 23)

Minute(Now)

минута данного момента времени (от 0 до 59)

Second(Now)

секунда данного момента времени (от 0 до 59)

Day(Now)

день текущей даты (от 1 до 31)

Month(Now)

месяц текущей даты (от 1 до 12)

Year(Now)

год текущей даты

Weekday(Now)

номер дня недели (от 1 до 7)

С помощью этих функций можно выводить на форму текущую дату и время, как показано на рис.20.

Рис.20. Пример вывода на форму текущей даты и времени.

Текст соответствующей процедуры приведен на рис.21.

Private Sub Form_Click()

Dim D As String, M As String

Dim G As String

Dim Mes(1 To 12) As String

Dim Dni(1 To 7) As String

Mes(1) = " января "

Mes(2) = " февраля "

Mes(3) = " марта "

Mes(4) = " апреля "

Mes(5) = " мая "

Mes(6) = " июня "

Mes(7) = " июля "

Mes(8) = " августа "

Mes(9) = " сентября "

Mes(10) = " октября "

Mes(11) = " ноября "

Mes(12) = " декабря "

Dni(1) = " воскресенье"

Dni(2) = " понедельник"

Dni(3) = " вторник"

Dni(4) = " среда"

Dni(5) = " четверг"

Dni(6) = " пятница"

Dni(7) = " суббота"

D = Day(Now)

DN = Weekday(Now)

M = Month(Now)

G = Year(Now)

Text1.Text = Dni(DN) + ", " + D + Mes(M) + G + " года"

Text2.Text = Time

End Sub

Рис.21. Текст процедуры вывода текущей даты и времени.

Примечание. В данном примере использованы два массива типа String. Один, с именем Mes, используется для записи названий месяцев, другой, с именем Dni – дней недели. Следует обратить внимание на то, что отсчет дней недели ведется не с понедельника, как это принято у нас, а с воскресенья. Это означает, что если сегодня, к примеру, четверг, то значение функции Weekday(Now)будет равно 5.

После запуске программы на открывшейся форме текстовые поля Text1иText2будут пустыми. После нажатия левой кнопки мыши (событиеClick), в эти поля будут выведены дата и время, как показано на рис.14.

Показываемое полем Text2время соответствует моменту нажатия кнопки и в дальнейшем не меняется. Можно, однако, сделать так, чтобы после запуска программы значения минут и секунд изменялись в последующие моменты времени в соответствии с показаниями системных часов компьютера. Для того надо воспользоваться объектомTimer.

На панели инструментов VisualBasicимеется пиктограмма объекта Timer, с помощью которого можно обращаться к системным часам компьютера и определять текущее время. Пиктограмма имеет вид часов (см. рис.8). Разместить экземпляр этого объекта на форме можно в любом месте, при запуске программы он не будет отображаться на экране.

Для объекта Timerосновным является свойство Interval, значение которого определяет интервал времени, через которое наступает событие, название которого совпадает с именем объекта – Timer. Величина интервала задается в миллисекундах. Это можно сделать либо в окне свойств объектаTimer, либо в самой программе путем присвоения значения. свойствуInterval, например

Timer.Interval = 1000

означает, что событие Timerбудет наступать через каждую секунду.

Добавим к процедуре, представленной на рис.22 еще одну, связанную с событием Timer.

Private Sub Timer1_Timer()

Text2.Text = Time

End Sub

Рис.22. Текст процедуры вывода текущего времени.

Теперь при запуске программы в поле Text2значение текущего времени будет обновляться каждую секунду. Предполагается, что интервал в 1000 мс задан в окне свойств объектаTimerпосле его размещения на экранной форме.

Объект Timerможно использовать не только для определения текущего времени. Процедуру, запускаемую через заданный промежуток времени можно применить, например, для внесения изменений в выводимое на экран изображение и для многих других задач.