- •В.Н.Агеев
- •А23 Программирование и основы алгоритмизации. Конспект лекций – м.: мгуп, 2012.– *** с.
- •Содержание
- •Предисловие
- •1. Понятие алгоритма в информатике. Блок-схемы алгоритмов
- •2. Типовые алгоритмы и их блок-схемы.
- •3. Алгоритмические языки и их классификация
- •Языки программи- рования
- •4. Методы объектно-ориентированного программирования
- •5. Интегрированная среда разработки Visual Basic
- •6. Программирование на языке Visual Basic
- •7. Программирование разветвляющихся процессов
- •If условие Then Оператор1 [ Else Оператор2]
- •8. Программирование циклических процессов
- •9. Графические возможности языка Visual Basic
- •10. Функции даты и времени. Объект Timer
- •11. Работа с внешними файлами и устройствами
- •Input # номер, имя_переменной
- •12. Работа с дисками и папками
- •CommonDialog1.ShowOpen
- •Open CommonDialog.FileName For Input As # 1
- •13. Работа с базой данных
- •14. Типы ошибок и методы отладки программ.
- •1. Синтаксические ошибки.
- •2. Ошибки в структуре программы.
- •3. Ошибки, возникающие во время выполнения программы.
- •4. Логические ошибки или ошибки алгоритма.
- •15. Примеры проектов
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можно использовать не только для определения текущего времени. Процедуру, запускаемую через заданный промежуток времени можно применить, например, для внесения изменений в выводимое на экран изображение и для многих других задач.