На этом шаге мы рассмотрим небольшой пример использования этой структуры.
Скромный пример, иллюстрирующий методы работы с датой и временем, представлен в примере ниже.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace pr290_1 { // Главный класс: class Program { // Главный метод: static void Main() { // Текущая дата и время: DateTime today = DateTime.Now; // Текущая дата: Console.WriteLine("Teкущая дата: {0}", DateTime.Today); // Использование свойств и методов // структуры DateTime: Console.WriteLine("Дата и время: {0}", today); Console.WriteLine("Год: {0}", today.Year); Console.WriteLine("Високосный: {0} ", DateTime.IsLeapYear(today.Year)); Console.WriteLine("Месяц: {0}", today.Month); Console.WriteLine("День недели: {0}", today.DayOfWeek); Console.WriteLine("День в году: {0}", today.DayOfYear); Console.WriteLine("Часы: {0}", today.Hour); Console.WriteLine("Минуты: {0}", today.Minute); Console.WriteLine("Секунды: {0}", today.Second); Console.WriteLine("Миллисекунды: {0}", today.Millisecond); Console.WriteLine("Такты: {0}", today.Ticks); // Новая дата и время: DateTime date = new DateTime(1974, 10, 22, 6, 15, 12); Console.WriteLine(date.ToString("Новая дата: dd MMMM yyyy; время - HH:mm:ss")); // Интервал времени: TimeSpan time = new TimeSpan(17, 71, 125); // Операции с датой и временем: Console.WriteLine("Интервал времени: {0}", time); Console.WriteLine("Eщe одна дата: {0}", date.Add(time)); Console.WriteLine("Paзность дат (дней): {0}", (today - date).Days); Console.WriteLine("Paзность дат (тактов): {0}", (today - date).Ticks); // Задержка: Console.ReadLine(); } } }
Результат выполнения программы такой:
Рис.1. Результат работы приложения
Код исключительно простой, поэтому прокомментируем лишь некоторые его моменты. Так, результатом выражения DateTime.Now является текущая (на момент вызова команды) дата и время. Результатом выражения DateTime.Today является текущая дата, но время в этом случае нулевое. Командой
DateTime date = new DateTime(1974, 10, 22, 6, 15, 12);
При вызове из экземпляра date структуры DateTime метода ToString() с текстовым аргументом инструкция "dd" в тексте означает, что в соответствующем месте должен отображаться день месяца (двумя цифрами). Инструкция "MMMM" означает отображение названия месяца. Инструкция "yyyy" означает, что в соответствующем месте год должен отображаться с помощью четырех цифр. Инструкция "HH:mm:ss" определяет формат для отображения времени (часы, минуты, секунды).
Месяц отображается с помощью инструкций "M" (число от 1 до 12), "MM" (число от 01 до 12 - то есть всегда две цифры), "MMM" (сокращенное название месяца), "MMMM" (полное название месяца).
Для отображения года можно использовать инструкции "у" (число от 0 до 99), "уу" (число от 00 до 99 - то есть всегда две цифры), "ууу" (год отображается числом минимум из трех цифр), "уууу" (год отображается числом из четырех цифр).
Инструкции "h" и "hh" используются для отображения количества часов числами от 1 до 12 и от 01 до 12 соответственно. А инструкции "H" и "HH" используются для отображения количества часов числами от 0 до 23 и от 00 до 23.
Инструкции "m" и "mm" используют для отображения количества минут числами от 0 до 59 и от 00 до 59. Для отображения секунд используют инструкции "s" (диапазон значений от 0 до 59) и "ss" (диапазон значений от 00 до 59).
Экземпляр структуры TimeSpan, который создается командой
TimeSpan time = new TimeSpan(17, 71, 125); ,
Результатом выражения date.Add(time) является экземпляр структуры DateTime, через который реализуется такая дата: к дате из экземпляра date прибавляется временной интервал из экземпляра time. Результатом разности today-date является экземпляр структуры TimeSpan. В нем реализован интервал времени между датами из экземпляров today и date. Свойства Days и Ticks позволяют узнать количество дней в этом интервале и количество тактов в этом интервале (напомним, один такт равен 100 наносекундам).
На следующем шаге мы рассмотрим еще один пример использования этой структуры.