Функции даты и времени. Объект 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.
На панели инструментов Visual Basic имеется пиктограмма объекта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 можно использовать не только для определения текущего времени. Процедуру, запускаемую через заданный промежуток времени можно применить, например, для внесения изменений в выводимое на экран изображение и для многих других задач.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|