- •Лабораторна робота №5-6. Тема: Робота з датою і часом. Елементи управління Timer, Monthcalendar та DateTimePicker.
- •Додавання і віднімання дати або часу
- •Визначення інтервалу між двома значеннями часу або датами
- •Частина дати
- •Поточні системні дата і час
- •Ще деякі методи та властивості
- •Створення таймерів
- •Використання об'єкту таймера для встановлення обмеження за часом
- •Приклад (основні кроки):
- •Виділення дат
- •Робота з календарем
- •6 Вересня 2010 року – понеділок
- •Отримувані значення
- •Варіанти індивідуальних завдань
Додавання і віднімання дати або часу
Для додавання до заданої дати або часу певного проміжку часу (будь то один день або три місяці) використовується функція DateAdd(). Функція Dateadd() має наступний синтаксис:
DateAdd(interval, number, date) As Date
Всі три параметри функції є обов'язковими. Перший параметр – не числовий, він визначає що додається (місяць, день, хвилина і так далі). Нижче в таблиці міститься список можливих значень для intervаl.
Не числове значення |
Рядок |
Часовий інтервал, що додається |
DateInterval.Day |
d |
День, округляється до цілих значень |
DateInterval.DayOfYear |
y |
День року, округляється до цілих значень |
DateInterval.Hour |
h |
Година, округляється до найближчої мілісекунди |
DateInterval Minute |
n |
Хвилина, округляється до найближчої мілісекунди |
DateInterval.Monht |
m |
Місяць, округляється до цілих значень |
DateInterval.Quarter |
q |
Квартал, округляється до цілих значень |
DateInterval.Second |
s |
Секунда, округляється до найближчої мілісекунди |
DateInterval.Weekday |
w |
День тижня, округляється до цілих значень |
DateInterval.WeekOfYear |
ww |
Тиждень, округляється до цілих значень |
DateInterval.Year |
yyyy |
Рік, округляється до цілих значень |
Другий параметр показує, скільки додається до дати. Останній параметр - дата, до якої додається. Якщо параметр number має від’ємне значення замість збільшення відбувається зменшення. Наприклад, для додавання 6 місяців до даті 7/22/69 використовується інструкція вигляду:
Dim objmybirthday As Date = #7/22/1969#
objmybirthday = DateAdd(DateInterval.Month, 6, objmybirthday))
Після виконання програмного коду Objmybirthday міститиме значення 1/22/1970 0:00:00.
Замість нецифрових значень можна використовувати відповідні літеральні рядки (див. табл., другий стовпець). Наприклад, останню інструкцію можна переписати у вигляді objmybirthday = DateAdd("m", 6, objmybirthday)
Представлені програмні коди показують, які значення повертаються при використанні функції DateAdd() з різними значеннями:
DateAdd(DateInterval.Year, 2, #3/3/1968#) ' Повертає 3/3/70
DateAdd(DateInterval.Month, 5, #5/14/1998#) ' Повертає 10/14/1998
DateAdd(DateInterval.Month, -1, #3/6/2000#) ' Повертає 2/6/2000
Visual Basic при операціях додавання або віднімання використовує календарний місяць. Наприклад, інструкція DateAdd("m", 1, #1/31/1969#) повертає дату 2/28/1969. В лютому місяці менше ніж 31 день, тому Visual Basic повертає останній день місяця.
Визначення інтервалу між двома значеннями часу або датами
Функція DateAdd () дозволяє легко і просто додавати або віднімати будь-які проміжки часу від дат або часу. Також легко можна набути значення інтервалу між двома існуючими датами або значеннями часу, якщо застосувати функцію DateDiff(). Функція DateDiff() має наступний синтаксис:
DateDiff(interval, Date1, Date2) As Long
Параметр intervаl може приймати такі ж значення, що і параметр intervаl функції DateAdd() (див. табл. вище). Функція DateDiff() повертає число, яке показує кількість тимчасових інтервалів між двома датами. Наприклад, представлений код програми виведе у вікні повідомлення 9 - кількість тижнів між двома датами:
Dim objstartday As Date = #10/10/2001#
Dim objendday As Date = #12/10/2001#
MsgBox((DateDiff(DateInterval.WeekOfYear, objstartday, objendday)))
Якщо друга дата наступила раніше, ніж перша, то повертається від’ємне число. Представлені нижче інструкції ілюструють роботу функції DateDiff() при різних значеннях параметрів:
DateDiff(DateInterval.WeekOfYear, #7/22/1969#, #10/22/2001#) 'Повертає 32
DateDiff(DateInterval.Month, #3/3/1992#, #3/3/1990#) 'Повертає -24
DateDiff(DateInterval.Day, #3/3/1997#, #7/2/1997#) 'Повертає 121
Хочеться звернути увагу на другу інструкцію. Вона повертає -24. Від’ємне значення пояснюється тим, що перша дата наступає після другої дати. Цю властивість можна використовувати для визначення порядку слідування двох дат. Потрібно просто застосувати функцію DateDiff() і визначити порядок проходження дат, виходячи із знаку повернутого числа.
