Дата и время в C#

Сегодня мы создадим программу, которая будет при запуске показывать нам цифровые часы и дату.

Для начала создаём форму. У нас она такая:

Дата и время в C# - vscode.ru

Всё, что у нас тут есть – это два Label’a + Timer.

Настраиваем Label’ы, переименовываем, увеличиваем шрифт – всё по усмотрению программиста.

Теперь переходим к коду, щёлкнув правой кнопкой мыши по форме и выбрав соответствующую команду.

Сразу после строки public partial class Form1 : Form объявим таймер. Делается это так:

Объявляем мы его в самом начале, чтобы все функции, которые у нас будут внутри, принимали его в расчёт (если он будет объявлен в какой-то одной отдельной функции, то вторая функция не будет его видеть).

Теперь рам надо включить наш таймер. Для этого мы возвращаемся в форму и дважды щёлкаем на неё левой кнопкой мыши.

Нас переносит в код, который будет срабатывать при загрузке формы (то есть, с самого начала работы программы). Здесь мы пишем следующее:

Первая строка устанавливает интервал обновления таймера. Число 1000 означает, что таймер будет обновляться каждые 1000 миллисекунд, т.е. каждую секунду.

Вторая строка очень важна – она срабатывает при каком-либо событии “Tick” в таймере. У нас она будет срабатывать каждые 1000 миллисекунд, пока включен таймер. Именно благодаря ней пользователь будет видеть смену часов, минут и секунд на циферблате. Само событие мы опишем ниже в функции timer1_Tick.

Третьей строкой мы запускаем наш таймер.

Теперь мы возвращаемся в форму и дважды кликаем на значке таймера (Безымянный1) внизу.

Вот и открылась у нас функция timer1_Tick. Мы запишем в неё определённый код, и каждые 1000 миллисекунд этот код будет исполняться заново.

Внутри нашей функции мы сначала объявим некоторые переменные:

В переменную h мы будем записывать часы, в переменную m – минуты, в s – секунды.

Переменная строкового типа time нам нужна, чтобы мы записали первые три переменные в строку для вывода в форму.

Теперь мы сделаем один “трюк”, предназначенный скорее для красоты вида, нежели для функционала и качества работы.

Дело в том, что мы привыкли видеть форму времени в виде, грубо говоря, 00:00:00, то есть две цифры на вывод часов, две цифры на минуты и две цифры на секунды (например, 06:03:09 или 12:01:05).Время же из свойства DateTime.Now не имеет нулей перед цифрами, которые меньше десяти (иначе говоря, время будет выглядеть так: 6:3:9 или 12:1:5). Согласитесь, это не очень удобно и привычно видеть. Поэтому мы исправим благодаря оператору условия if.

Сначала мы задаём условие, что если h<10, то есть если часы показывают время от 0 до 9 часов, то в таком случае в строку time мы добавляем перед h ноль, чтобы у нас получилось не просто время 5 часов, а 05 часов.  Иначе (else) мы просто добавляем в time переменную h без нулей.

То же самое мы проделываем с минутами и секундами, не забывая при этом между часами и минутами, а также минутами и секундами поставить двоеточие.

Теперь давайте, для большего понимания, что мы сделали, поговорим о работе строки time. Мы поочерёдно записываем в неё часы (с нулём или без), минуты (аналогично) и секунды (аналогично). Между ними мы ставим двоеточие. Именно поэтому после первых двух условий у нас имеются строки

Итак, в самом начале работы программы строка time у нас пустая (мы выше объявили её такой, с правой стороны поставив пустые кавычки: string time = “”). Как только запускается таймер, в строку сначала записываются часы, принимая во внимание, больше ли 10 это время или меньше.

То есть вместо пустого пространства в строке теперь что-то типа “12”, если у нас в данный момент 12 часов. После этого в строку записывается двоеточие, теперь строка выглядит так: “12:”. Затем мы записываем минуты, опять учитывая, сколько знаков в них. Получится, например, так :”12:06″. Опять ставим двоеточие: “12:06:”. Заканчивается запись секундами: “12:06:34″. И перезаписываться наша строка от пустоты до полной формы времени будет каждые 1000 миллисекунд, то есть каждую секунду, чтобы мы видели, как меняется циферблат секунд, а впоследствии и минут с часами.

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

Поэтому мы выводим нашу строку в форму через Label. У нас это label2, с наиболее крупным шрифтом.

Наши часы готовы. Уже можно наблюдать за ходом времени, запустив проект. Но мы ещё решили выставить дату. Делается это аналогичным образом. Поэтому ниже мы пишем:

Разница лишь в том, что мы добавляем нули только перед днями и месяцами, года у нас и так четырёхзначные, а вместо двоеточий мы ставим просто точки. В итоге у нас получается примерно такой вид: 16.02.2015.

И мы так же записываем это всё в Label, но уже в другой.

В итоге у нас получается вот такая программка:

Дата и время в C# - vscode.ru

Скачать исходник программы на языке C# можете ниже:

Скачать исходник

 

Дата и время в C#
5 (100%) 8 votes

Поделиться в соц. сетях:

Один комментарий к статье “Дата и время в C#

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">