Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Работа с датой и временем



При необходимости работы со значениями, обозначающими дату или время, соответствующая переменная должна иметь тип Date, диапазон значений которой находится в пределах от 1 ян­варя 100 года до 31 декабря 1999 года.

В языке Visual Basic для работы с датой и временем использу­ется ряд форматов, общим для которых является то, что значения должны размещаться между так называемыми литералами даты и времени, в качестве которых используется знак #.

Например:

Dim dtmDate As Date dtmDate = #30-05-2000#

Значение, которое содержится в переменной типа Date, мо­жет быть как кратким (только дата или только время), так и пол­ным (и дата, и время). Причем во втором случае значение време­ни должно указываться после даты.

Например:

dtmDate = #30-05-2000 20:30#

Следует отметить тот факт, что представление для значений переменных, преобразуемых из строки в дату, которое использу­ется в языке Visual Basic по умолчанию, зависит от настроек вкладки Дата раздела Язык и стандарты в Панели управления (см. рис. 6.18). Т. е. в том случае, когда осуществляется преобра­зование строковой переменной в дату, из одной и той же строки в зависимости от установленного региона могут быть получены разные даты, например:

Dim strDate As String Dim dtmDate As Date strDate = "08/05/99" dtmDate = CDate(strDate)

Если приведенный выше программный код будет выполнен при установленном формате "дд/ММ/гг" региона Русский, то ре­зультатом будет дата 8 мая 1999 года. Если же программу запус­тить при настройке "ММ/дд/гг" региона Английский (США), то в этом случае результатом будет 5 августа 1999 года.

Для переменных, содержимым которых является дата, в языке Visual Basic по умолчанию используется формат #ММ/дд/гг#. Например, следующее значение переменной dtmDate:

dtmDate = "8/5/99"

что будет интерпретировано как дата 5 августа 1999 года, незави­симо от настроек Панели управления. Однако необходимо отме­тить, что в случае использования любого другого формата. Например:

dtmDate = "30/5/99" или

dtmDate = "30-05-99"

т. е. когда, в отличие от предыдущего случая, разночтения ис­ключены, вводимое значение будет автоматически преобразовано в соответствии с форматом, используемым по умолчанию:

dtmDate = "5/30/99"

Над переменными типа Date возможно выполнение ариф­метических операций. В частности прибавление или вычита­ние целого числа приведет к увеличению или уменьшению количества дней. Если же подобную операцию выполнить с дробью, знаменателем которой является число 24, то соответ­ствующим образом увеличится или уменьшится значение, обозначающее количество часов. Аналогичным способом можно изменить количество минут (знаменатель - 24 * 60).

Например:

Dim dtmDate As Date, dtmCurrent As Date

Dim intDate

dtmCurrent = Now

' Результат: #5/30/2000 12:11:56#

intDate = dtmCurrent - 5

' Результат: #5/25/2000 12:11:56#

intDate = dtmCurrent -5/24

' Результат: #5/30/2000 7:11:56#

intDate = dtmCurrent - 5 / (24 * 60)

' Результат: #5/30/2000 12:06:56#

Помимо выполнения арифметических операций, значения типа Date можно сравнивать друг с другом. Например:

Dim dtmDate1, dtmDate2 Dim strRelation As String dtmDate1 = #5/30/1999# dtmDate2 = #6/30/1999# If dtmDate1 < dtmDate2 Then

strRelation = "Date1 Меньше Date2" Else

strRelation = " Date1 Больше Date2" End If ' Результат: "Date1 Меньше Date2"

При работе с переменными типа Date используется боль­шое количество функций, которые можно разделить на не­сколько основных категорий.

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

Листинг 6.5. Определение текущей даты и времени

Dim dtmCurrent As Date

dtmCurrent = Now 'Результат: #5/30/2000 12:J1:56#

dtmCurrent = Date 'Результат: #5/30/2000#

dtmCurrent = Time 'Результат: #12:11:56#

Характеристики заданной даты и времени. В качестве пара­метра употребляемых функций указывается значение или имя переменной типа Date. При этом результатом их вызова являют­ся различные характеристики используемой переменной (или заданного значения) (см. табл. 6.16).

Листинг 6.6. Характеристики заданной даты и времени

Dim dtmCurrent As Date

Dim intDate dtmCurrent = Now 'Результат: #5/30/2000 12:11:56#

intDate = Second(dtmCurrent) ' Результат: 56

intDate = Minute(dtmCurrent) ' Результат: 11

intDate = Hour(dtmCurrent) ' Результат: 12

intDate = Day(dtmCurrent) ' Результат: 30

intDate = Weekday(dtmCurrent) ' Результат: 3

intDate = WeekdayName(Weekday(dtmCurrent)) 'Результат: "среда"

intDate = Month(dtmCurrent) ' Результат: 5

intDate = MonthName(Month(dtmCurrent)) 'Результат: "Май"

intDate = Year(dtmCurrent) ' Результат: 2000

Работа с заданной датой и временем. Используемые в этом случае функции позволяют изменять заданную дату или время, определять ее отдельные характеристики, а также находить от­ношение двух дат (см. табл. 6.17).

Для изменения заданного значения даты или времени исполь­зуется функция DateAdd, имеющая следующий формат:

DateAdd(uрmepвaл,число, дата)

Результатом вызова функции DateAdd будет дата с изменен­ным на числовое значение интервалом, который является строкой и может принимать следующие значения (см. табл. 6.18):

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

Для определения отношения двух заданных значений дат сле­дует использовать функцию DateDiff, которая имеет такой синтаксис:

DateDiff(интервал, дата1, дата2)

Число, полученное в результате вызова функции DateDiff, определяет разницу между значениями дата1 и дата2, которая измеряется в единицах указанного интервала (см. табл. 6.18).

Результатом может быть как положительное, так и отрица­тельное значение.

Для определения той или иной характеристики заданной даты используется функция DatePart, имеющая следующий формат:

DatePart(интервал, дата)

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

Листинг 6.7. Работа с заданной датой и временем

Dim dtmDate As Date, dtmCurrent As Date

Dim intDate As Integer

dtmCurrent = Now 'Результат: #5/30/2000 12:11:56#

dtmDate = DateAdd("m", 2, dtmCurrent) 'Результат: #7/30/2000 12:11:56#

dtmDate = DateAdd("d", -5, dtmCurrent) 'Результат: #5/25/2000 12:11:56#

intDate = DateDiff("w", #1/1/2000#, dtmCurrent) ' Результат: 21

intDate = DateDiff("d", #1/1/2000#, dtmCurrent) ' Результат: 150

intDate = DatePart("h", dtmCurrent) ' Результат: 12

intDate = DatePart("m", dtmCurrent) ' Результат: 11





Дата публикования: 2015-01-23; Прочитано: 240 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...