0Pricing
C# Academy · Урок

Создание DateTimes

Now, Today и конкретные даты.

«Создание DateTimes» — бесплатный урок C# Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.

Знакомство с DateTime

В C# структура DateTime представляет один момент времени, включая дату и время суток.

Она находится в пространстве имён System, поэтому доступна в каждой программе. Вы будете использовать её для дней рождения, временных отметок, сроков и многого другого.

Значение DateTime содержит год, месяц, день, час, минуту, секунду и даже доли секунды.

DateTime.Now

Самый простой способ получить текущие дату и время — DateTime.Now. Этот вызов считывает показания локальных часов компьютера.

При каждом вызове Вы получаете новый снимок текущего момента. Поскольку результат зависит от времени выполнения, выведенное значение каждый раз меняется.

using System;

class Program
{
    static void Main()
    {
        DateTime now = DateTime.Now;
        Console.WriteLine(now);
    }
}

Сегодняшняя дата

Если Вас интересует только дата, а не время, используйте DateTime.Today. Этот вызов возвращает полночь (00:00:00) текущего дня.

Это удобно при сравнении дней, поскольку временная часть устанавливается в ноль.

using System;

class Program
{
    static void Main()
    {
        DateTime today = DateTime.Today;
        Console.WriteLine(today.Year);
    }
}

Время UTC

Компьютеры по всему миру используют UTC (всемирное координированное время). Используйте DateTime.UtcNow, чтобы получить текущее время в UTC без привязки к местному часовому поясу.

UTC — безопасный выбор для серверов и хранения временных отметок, которые будут считывать в разных регионах.

using System;

class Program
{
    static void Main()
    {
        DateTime utc = DateTime.UtcNow;
        Console.WriteLine(utc.Kind);
    }
}

Создание определённой даты

Чтобы создать точную дату, используйте конструктор new DateTime(year, month, day). Временная часть по умолчанию устанавливается в полночь.

Это идеально подходит для фиксированных дат, например праздника или дня запуска. Поскольку значение фиксировано, вывод полностью предсказуем.

using System;

class Program
{
    static void Main()
    {
        DateTime launch = new DateTime(2024, 1, 15);
        Console.WriteLine(launch.ToString("yyyy-MM-dd"));
    }
}

Добавление времени суток

Расширенная версия конструктора позволяет задать часы, минуты и секунды: new DateTime(year, month, day, hour, minute, second).

Часы указываются в 24-часовом формате, поэтому 14 означает 2 PM. Так Вы получаете полную временную отметку с точностью до секунды.

using System;

class Program
{
    static void Main()
    {
        DateTime meeting = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(meeting);
    }
}

Чтение отдельных частей

Получив значение DateTime, можно прочитать каждую его часть через свойства: Year, Month, Day, Hour, Minute и Second.

Они возвращают обычные целые числа, поэтому их легко выводить или сравнивать.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
        Console.WriteLine(d.Month);
        Console.WriteLine(d.Hour);
    }
}

День недели

Свойство DayOfWeek сообщает, на какой день недели приходится дата. Оно возвращает значение перечисления DayOfWeek, например Monday или Saturday.

Существует также DayOfYear — целое число от 1 до 366.

using System;

class Program
{
    static void Main()
    {
        DateTime d = new DateTime(2024, 1, 1);
        Console.WriteLine(d.DayOfWeek);
    }
}

Минимальное и максимальное значения

У DateTime есть две специальные константы. DateTime.MinValue — это 1 января первого года, а DateTime.MaxValue — 31 декабря 9999 года.

Они полезны как значения по умолчанию или специальные маркеры, когда настоящая дата ещё не задана.

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine(DateTime.MinValue);
        Console.WriteLine(DateTime.MaxValue.Year);
    }
}

Разбор строки с датой

В тексте, полученном от пользователя или из файла, часто содержится дата. DateTime.Parse преобразует строку в значение DateTime.

Если текст не содержит допустимую дату, Parse выдаёт ошибку. Для более безопасной обработки можно использовать DateTime.TryParse: этот метод возвращает значение «истина» или «ложь», а не приводит к аварийному завершению программы.

using System;

class Program
{
    static void Main()
    {
        DateTime d = DateTime.Parse("2024-07-04");
        Console.WriteLine(d.Year);
    }
}

Безопасный разбор с помощью TryParse

DateTime.TryParse позволяет избежать исключений. Он принимает текст и переменную out, возвращая true при успешном выполнении.

Это рекомендуемый способ обработки непредсказуемых входных данных, например значения, введённого пользователем.

using System;

class Program
{
    static void Main()
    {
        bool ok = DateTime.TryParse("not a date", out DateTime result);
        Console.WriteLine(ok);
    }
}

Быстрая проверка

Вам нужна только текущая дата без компонента времени (полночь). Какой вызов следует использовать?

Итоги

Вы научились создавать значения DateTime. Используйте DateTime.Now для получения текущего местного времени, DateTime.Today — для полуночи текущего дня, а DateTime.UtcNow — для всемирного времени.

Создавайте фиксированные даты с помощью new DateTime(...), читайте их части через Year, Month и DayOfWeek, а текст преобразуйте с помощью Parse или более безопасного TryParse.

Часто задаваемые вопросы

Урок «Создание DateTimes» бесплатный?

Да — полный текст урока «Создание DateTimes» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.

Чему я научусь в уроке «Создание DateTimes»?

Now, Today и конкретные даты. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C# Academy?

Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Создание DateTimes»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C# Academy?

Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание DateTimes
  2. Форматирование дат
  3. TimeSpan и длительности
  4. Арифметика дат
← Назад к C# Academy