понедельник, 26 марта 2012 г.

TimeSpan. Введение


Давным-давно я закончил рассматривать класс для работы с датой и временем языка Visual Basic.NETDateTime. И в последней статье запланировал в скором времени приступить к рассмотрению класса TimeSpan. Время прошло (больше месяца) – пора уже приступать к запланированному действию. Сегодня и начну.

Если вы знакомы с английским языком – то знаете что означает слово «Span». Означает оно отрезок. А если присоединить к нему еще и «Time» - то получится отрезок времени. И это действительно так. Класс TimeSpan представляет отрезок времени, который можно измерять в различных интервала времени (от тиков до дней).

Чаще всего в объектах данного класса сохраняется значение разности между двумя датами (то есть прямо в программе прописываем разность между двумя объектами класса DateTime). Но можно и сразу занести в объект TimeSpan значение разности – и потом использовать (где надо) это значение в своем приложении.

Как обычно – перед использованием переменную данного типа необходимо объявить. Сделать это можно так:

Dim TS As New TimeSpan

Сразу занести туда значения можно четырьмя способами. Начало у всех одинаковое, а затем (в параметрах интервала) есть различия:

Можно объявить интервал в тиках (одно число), часы-минуты-секунды (3 числа), дни-часы-минуты-секунды (4 числа) и дни-чисы-минуты-секунды-миллисекунды (5 чисел). Не забываем про нули – их тоже можно передавать. А также – если передать, например, 63 секунды – то автоматически увеличиться значение минуты и так далее.

Dim TS As TimeSpan = New TimeSpan(1, 2, 3, 4)

Здесь я задал интервал в один день, два часа, три минуты и четыре секунды. Проверить это можно с помощью MsgBox(TS).

И еще напомню вам про один из методов класса DateTimeSubtract. Возвращает он разность двух дат (естественно – возвращаемое значение принадлежит типу TimeSpan). Следующим примером проиллюстрирую такое использование:

Dim TS As New TimeSpan
Dim dtN As DateTime = #12/12/2005#
Dim dtO As DateTime = #12/12/2006#
TS = dtO.Subtract(dtN)
MsgBox(TS.ToString)

Вот такой пример. Если передать в dtN и dtO одинаковые значения, то вернет 0. Если сделать dtN больше чем dtO – то будет возвращено отрицательное значение. В общем – работает корректно.

Комментариев нет:

Отправить комментарий