|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ВРЕМЯ И ТАЙМЕРЫ
Время создания: 31.07.2019 22:37
Текстовые метки: VB
Раздел: Разные закладки - VBA
Запись: xintrea/mytetra_db_adgaver_new/master/base/1520589868o5o5xjr8v8/text.html на raw.githubusercontent.com
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7. ВРЕМЯ И ТАЙМЕРЫ
7.1. Понятия овремени в Visual Basic Работа Visual Basic со временем заметно отличается от того, как это происходит в повседневной жизни. Для выполнения операций с ним в Visual Basic используются данные типа «Date», для которых основной единицей измерения является день. Один час равен 1/24 дня, а секунда — 1/86400 дня. Неделя будет представлена цифрой 7, поскольку состоит из семи дней. Данные типа «Date» отображают время в соответствии с темформатом, который установлен на компьютере, —12- или 24-часовым(см. «Панель управления» Windows). В юлианском календаре первый день нашей эры —это 1 января 0001 года. Для данных типа «Date» выбрано другое начало отсчета: первый день —это 31 декабря 1899 года, второй день — 1 января 1900 года.Таким образом, 12 июня 1968 года —это день 25001-й или просто 25001 (другими словами, это 25001-й день, если считать от 31 декабря 1899 года). Дата 25001.5 переводится как полдень 12 июня 1968 года.Даты до 31 декабря 1899 года имеют отрицательные значения, например, 4 июля 1776 года —это -45103 день, т.е.45103 день до 30 декабря 1899года. Переменной типа «Date» можно присвоить литерал (т.е.буквальное значение) даты, разместив его между знаками «#», например: Dim MyDate as Date MyDate = #January 25, 1999# Примечание Хотя в Visual Basic обещается поддержка национальных форматов даты из панели управления, русскоязычное представление работать отказывается.
Кроме того, тип «Date» можно преобразовать в любойчисловой формат. Например, 4 августа 1997 года,22 часа 56 минут выглядит как 35390.58333 в формате «Double». Все, что находится слева от десятичной точки– это день, а после точки –часы, минуты, секунды и миллисекунды. Обратите внимание, что дробную часть значения менее 1 можно использовать для указания только времени; например, 0.12345 означает 2:57:46 пополудни.
7.2.Элемент управления таймером В VisualBasic имеется элемент управления таймером –«Timer», который позволяет отслеживать время. Его можно представлять себе как маленькие часы, которые, будучи включенными, вызывают некоторое программируемое событие через заданный интервал времени. Вызываемое таймером событие называется «Timer», процедура обработки этогособытия в программе имеет следующий синтаксис: Private Sub TimeName_Timer () · TimeName – имя элемента управления таймером. · Timer– имя события.
Времямеждунаступлениемсобытий «Timer»указываетсяв свойстве «Interval»элементауправлениятаймером.Единицейизмеренияинтервалавремени вэтом свойствеявляетсямиллисекунда.В следующейстрокеинтервалвремениустановленравнымполусекунде: Timer1.Interval = 500
Свойству элементауправлениятаймером совсемнемного(табл. 10),посколькуглавная и единственнаяего задачасостоит вгенерациисобытия.
Таблица10 Свойстваэлементауправлениятаймером
7.3.Использованиекоманд приработе современем Хотятаймер иможнозапрограммироватьтак, чтобы онвопределенноевремя вызывалсобытие «Timer»,сам таймер незнает истинноготекущеговремени.Чтобыопределитьтекущеевремя,необходимообратиться ксистемнымчасамкомпьютера. Чтобыузнатьсистемноевремя,используйтефункцию «Time», ачтобы узнатьсистемнуюдату –функцию «Date».Если женеобходимоузнать ивремя, и дату, воспользуйтесьфункцией «Now»: Text1.Text = Time Label2.Caption = Date Text3.Text = Now
Иногдабываетнеобходимополучитьтолькоколичествочасов, минутили тольконазваниемесяца изсистемноговремени. Дляэтогопользуютсяследующимифункциями:
При работе свременнымипараметрамиоченьполезнымифункциямиявляютсяследующие:
Для ручнойустановкисистемноговремени идатыприменяютследующиеоператоры: Time = time и Date = date, которыеустанавливаютсистемноевремя и датувсоответствиисозначениямиаргументов «time» и «date»соответственно.
7.4.Вычислениеразницымежду датами Еслипонадобитсянаписатьпрограмму,вычисляющуюинтервалвременимежду двумядатами, тонеобходимопользоватьсяфункцией «DateDiff»,имеющейследующийсинтаксис: MyLong = DateDiff(interval, date1,date2[, week[, year]]) · MyLong –возвращаемоезначениетипа «Variant» («Long»); · DateDiff– имя самойфункции; · interval– строкасимволов,описывающаяинтервал измерениядля разностимежду двумядатами (см.табл. 11); · date1– начальнаядатаизмеряемогоинтервала (тип«Date»); · date2– конечнаядатаизмеряемогоинтервала (тип«Date»); · week– константа,устанавливающаяпервый день недели; · year– константа,указывающаяпервуюнеделю года.
Таблица11 Значенияпараметра «interval»функции «DateDiff»
Функция«DateDiff»берет первуюдату,представленнуюпараметром «date1» ивычитает ееиз второйдаты,представленнойпараметром «date2».Выполниввычитание,функциявозвращает числовоезначениетипа «Long», котороеи являетсяразностьюдат. Единицуизмерениядляпредставленияответа указываютс помощьюпараметра «interval».
7.5.Использованиефункции «Format» дляпредставлениявремени Функция«Format» – этомощнаяфункция Visual Basic,позволяющаяуправлятьотображениемстроки. Преимущественноэта функцияиспользуетсядляформатированиязначенийдаты, времении числовыхзначений, ноее можноиспользоватьлюбыми и слюбымистроковымизначениями.Функция «Format» имеет следующий синтаксис: MyString =Format(expression, format [, week[, year]]) · MyStrings–возвращаемоестроковоезначение; · Format–имя самойфункции; · expression– любоевыражение,представляющеестроку символов,датучисловоезначение; · format–строка-шаблон,котораяопределяетстрокурезультата. · week–необязательнаяконстанта,устанавливающаяпервый деньнедели. Поумолчаниюона имеетзначение «Sunday» (воскресенье),но можноустановитьдругое значение,например «Monday»(понедельник); · year–необязательнаяконстанта,указывающая первуюнеделю года.По умолчаниюэто неделя,на которуюприходится 1января. Номожно установитьи другоезначение,например первуюполнуюнеделю года.
Приработе сфункцией «Format»основныммоментомявляетсяумениеобращаться спараметром«format», которыйопределяет,как значениепараметра «expression»будетпреобразовыватьсяв строкусимволов. Втабл. 12показано, какиспользоватьнастройкифункции «Format»дляформатированиястрок синформациейо датевремени.
Таблица12 Примерыпредопределенныхформатов дляотображениявремени идаты
Этуфункциюможноиспользоватьдля нужногоформатаотображениялюбыхзначений, в томчислечисловых. Втабл. 13показано, какиспользоватьфункцию «Format»дляпредставлениячисловых значенийв виде строкисимволовнужного вида,используя предопределенныеформаты.
Таблица13 Использованиефункцииформат счисловымизначениями
В функции «Format»можноиспользоватьтакжесобственные форматыпользователя.Онипредставляютсобойспециальную маску,по которойбудетформироватьсяитоговая строка.Дляформированиямаскииспользуютсядва символа:«#»(необязательныйсимвол) и «0»(обязательныйсимвол). Длядобавления встрокунекоторых определенныхсимволов ихдобавляют вмаску внужное место.Примериспользованияих приведен втаблице 14.
Таблица 14 Примериспользованиямаски вфункции «Format»
Контрольныевопросы длясамопроверки
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Так же в этом разделе:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|