netlib.narod.ru< Назад | Оглавление | Далее >

Структура DateTime

Если вы хотите написать программу-часы, вам следует узнать кое-что о представлении даты и времени в .NET Framework.

В пространстве имен System определена наиболее важная структура даты и времени — DateTime. Создать объект типа DateTime можно, используя семь конструкторов, три из которых таковы:


Конструкторы DateTime (выборочно)



DateTime(int year, int month, int day)
DateTime(int year, int month, int day, int hour, int minute,
         int second)
DateTime(int year, int month, int day, int hour, int minute,
         int second, int msec)


Значение года может лежать в диапазоне от 1 до 9 999, месяца — от 1 до 12, дня — от 1 до числа дней в соответствующем месяце данного года. Значение количества часов лежит в пределах от 0 до 23, минут и секунд — от 0 до 59, миллисекунд — от 0 до 999. Если любой из аргументов выходит за разрешенные пределы, конструктор генерирует исключение.

Кроме того, конструктор DateTime генерирует исключение в том случае, если значения года, месяца и дня несовместимы. Например, значение месяца, равное 2, и дня — равное 29, допустимо только для високосного года. Конструкторы DateTime применяют правила високосного года для Григорианского календаря (введенного Папой Григорием XIII в 1582 г. и разошедшегося по всему миру в последующие столетия). В Григорианском календаре год является високосным, если число, обозначающее этот год, делится на 4, но не делится на 100 или если оно делится на 400. 1900 г. не является високосным; 2000 — является. (До введения Григорианского календаря високосным считался каждый четвертый год без исключений.) Конструктор DateTime соблюдает правила високосного года даже для годов, предшествовавших созданию Григорианского календаря.

Класс DateTime имеет 15 свойств, каждое из которых доступно только для чтения. Десять из них приведены ниже:


Свойства DateTime (выборочно)



Тип Свойство Доступ Описание

int Year Чтение От 1 до 9999
int Month Чтение От 1 до 12
int Day Чтение От 1 до 31
int Hour Чтение От 0 до 23
int Minute Чтение От 0 до 59
int Second Чтение От 0 до 59
int Millisecond Чтение От 0 до 999
int DayOfWeek Чтение От 0 (воскресенье) до 6 (суббота)
int DayOfYear Чтение От 1 до 366
DateTime Date Чтение Время установлено в 0 (полночь)


Первые семь представляют собой хорошо знакомые атрибуты даты и времени, и принимают значения заданные в конструкторе. Свойства DayOfWeek и DayOfYear предоставляют дополнительную информацию о текущей дате: номер дня в неделе (начиная с воскресенья) и в году. Свойство Date возвращает объект DateTime, представляющий тот же день, что и текущий объект DateTime, но значения его свойств Hour, Minute, Second и Millisecond устанавливаются в 0.

Класс DateTime содержит три особенно полезных статических свойства:


Статические свойства DateTime



Тип Свойство Доступ Описание

DateTime Now Чтение Текущие местные дата и время
DateTime Today Чтение Текущая местная дата
DateTime UtcNow Чтение Текущие дата и время всемирного скоординированного времени (UTC)


Свойство DateTime.Now возвращает структуру DateTime, заполненную значениями местного времени и даты. Например, чтобы получить текущие время и дату в вашей программе, вызовите:

  DateTime dt = DateTime.Now;

Теперь вы можете использовать свойства DateTime объекта dt для получения значения даты и времени. Свойство DateTime.Today возвращает аналогичную структуру DateTime, содержащую сегодняшнюю дату, но значения всех свойств, касающихся времени, установлены в 0.

Статическое свойство UtcNow возвращает структуру DateTime, которая содержит значения текущего времени и даты для всемирного скоординированного времени (UTC). Мы подробнее обсудим это в следующем разделе.

Структура DateTime содержит методы и перегруженные операторы, позволяющие производить вычисления над датами и временем. Для объектов DateTime можно применять все операторы сравнения (==, !=, <, >, <= и >=). Кроме того, поддерживается сложение и вычитание, но эти операции задействуют объекты TimeSpan, о которых я расскажу чуть позже.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz