Шаг 290.
Язык программирования C#. Начала.
Немного о разном. Работа с датой и временем. Пример 1

    На этом шаге мы рассмотрим небольшой пример использования этой структуры.

    Скромный пример, иллюстрирующий методы работы с датой и временем, представлен в примере ниже.

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" определяет формат для отображения времени (часы, минуты, секунды).


Инструкция "d" означает, что для обозначения даты используются числа от 1 до 31. Инструкция "dd" означает, что день обозначается числами от 01 до 31 (то есть всегда используется две цифры). Инструкция "ddd" используется, если день должен отображаться как день недели (в сокращенном написании). Если используется инструкция "dddd", то день отображается как день недели (полное написание).

    Месяц отображается с помощью инструкций "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);             , 
определяет интервал времени. Аргументы конструктора - это часы, минуты и секунды.


Обратите внимание, что 71 минута - это 1 час и 11 минут, а 125 секунд - это 2 минуты и 5 секунд. Таким образом, экземпляру time структуры TimeSpan отвечает интервал времени протяженностью 18 часов, 13 минут и 5 секунд.

    Результатом выражения date.Add(time) является экземпляр структуры DateTime, через который реализуется такая дата: к дате из экземпляра date прибавляется временной интервал из экземпляра time. Результатом разности today-date является экземпляр структуры TimeSpan. В нем реализован интервал времени между датами из экземпляров today и date. Свойства Days и Ticks позволяют узнать количество дней в этом интервале и количество тактов в этом интервале (напомним, один такт равен 100 наносекундам).

    На следующем шаге мы рассмотрим еще один пример использования этой структуры.




Предыдущий шаг Содержание Следующий шаг