Шрифт:
Интервал:
Закладка:
for(;;) {
dt = DateTime.Now;
// обновлять время через каждую секунду
if(seconds != dt.Second) {
seconds = dt.Second;
t = dt.ToString("T");
if(dt.Minute==0 && dt.Second==0)
t = t + "a"; // производить звонок через каждый час
Console.WriteLine(t);
}
}
}
}
Определение пользовательского формата даты и времениНесмотря на то что стандартные спецификаторы формата даты и времени предусмотрены практически на все случаи жизни, пользователь может определить свои собственные специальные форматы. Процесс определения пользовательских форматов даты и времени мало чем отличается от описанного выше для числовых типов значений. По существу, пользователь создает пример (т.е. изображение) того, как должны выглядеть выводимые данные даты и времени. Для определения пользовательского формата даты и времени служат символы-заполнители, перечисленные в табл. 22.8.
Таблица 22.8. Символы-заполнители специального формата даты и времени
Символ-заполнитель
Назначение
d
День месяца в виде числа в пределах от 1 до 31
dd
День месяца в виде числа в пределах от 1 до 31. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
ddd
Сокращенное название дня недели
dddd
Полное название дня недели
f, ff, fff, ffff, fffff, ffffff, fffffff
Дробная часть числового значения, обозначающего секунды. Количество десятичных разрядов определяется числом заданных символов f
g
Эра
h
Часы в виде числа в пределах от 1 до 12
hh
Часы в виде числа в пределах от 1 до 12. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
H
Часы в виде числа в пределах от 0 до 23
HH
Часы в виде числа в пределах от 0 до 23. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
К
Часовой пояс, указываемый в часах. Для автоматической коррекции местного времени и универсального синхронизированного времени (UTC) используется значение свойства DateTime.Kind. (Этот спецификатор формата рекомендуется теперь вместо спецификаторов с символами-заполнителями Z.)
m
Минуты
mm
Минуты. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
M
Месяц в виде числа в пределах от 1 до 12
MM
Месяц в виде числа в пределах от 1 до 12. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
МММ
Сокращенное название месяца
MMMM
Полное название месяца
s
Секунды
ss
Секунды. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
t
Символ “А” или “Р”, обозначающий время А.М. (до полудня) или P.M. (после полудня) соответственно
tt
A.M. или P.M.
У
Год в виде двух цифр, если недостаточно одной
УУ
Год в виде двух цифр. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
УУУ
Год в виде трех цифр
УУУУ
Год в виде четырех цифр
УУУУУ
Год в виде пяти цифр
z
Смещение часового пояса в часах
zz
Смещение часового пояса в часах. Числовые значения в пределах от 1 до 9 дополняются начальным нулем
zzz
Смещение часового пояса в часах и минутах
:
Разделитель для составляющих значения времени
/
Разделитель для составляющих значения даты
%fmt
Стандартный формат, соответствующий спецификатору формата fmt
Глядя на табл.22.8, можно заметить, что символы-заполнители d, f, g, m, М, s и t выполняют ту же функцию, что и аналогичные символы-заполнители из табл.22.7. Вообще говоря, если один из этих символов указывается отдельно, то он интерпретируется как спецификатор формата. В противном случае он считается символом-заполнителем. Поэтому если требуется указать несколько таких символов отдельно, но интерпретировать их как символы-заполнители, то перед каждым из них следует поставить знак %.
В приведенном ниже примере программы демонстрируется применение нескольких форматов даты и времени.
// Отформатировать дату и время, используя специальные форматы,
using System;
class CustomTimeAndDateFormatsDemo {
static void Main() {
DateTime dt = DateTime.Now;
Console.WriteLine("Время: {0:hh:mm tt}", dt) ;
Console.WriteLine("Время в 24-часовом формате: {0:HH:mm}", dt) ;
Console.WriteLine("Дата: {0:ddd МММ dd, yyyy}", dt) ;
Console.WriteLine("Эра: {0:gg}", dt) ;
Console.WriteLine("Время в секундах: " +
"{0:HH:mm:ss tt}", dt) ;
Console.WriteLine("День месяца в формате m: {0:m}", dt);
Console.WriteLine("Минуты в формате m: {0:%m}", dt);
}
}
Вот к какому результату приводит выполнение этой программы (опять же все зависит от конкретных настроек языковых и региональных параметров локализации базового программного обеспечения).
Время: 11:19 AM
Время 24-часовом формате: 11:19
Дата: Thu Feb 11, 2010
Эра: A.D.
Время в секундах: 11:19:40 AM
День месяца в формате m: February 11
Минуты в формате m: 19
Форматирование промежутков времени
Начиная с версии 4.0, в среде .NET Framework появилась возможность форматировать объекты типа TimeSpan — структуры, представляющей промежуток времени. Объект типа TimeSpan может быть получен самыми разными способами, в том числе и в результате вычитания одного объекта типа DateTime из другого. И хотя форматировать объекты типа TimeSpan приходится нечасто, о такой возможности все же стоит упомянуть вкратце.
По умолчанию в структуре TimeSpan поддерживаются три стандартных спецификатора формата даты и времени: с, g и G. Они обозначают инвариантную форму промежутка времени, короткую и длинную форму с учетом культурной среды соответственно (последняя форма всегда включает в себя дни). Кроме того, в структуре Time Span поддерживаются специальные спецификаторы формата даты и времени, приведенные в табл.22.9. Вообще говоря, если один из этих спецификаторов используется в отдельности, его нужно предварить символом %.
Таблица 22.9. Символы-заполнители специального формата промежутка времени
Символ-заполнитель
Назначение
d, dd, ddd, dddd, ddddd, dddddd, ddddddd
Целые дни. Если указано несколько символов-заполнителей
d, то отображается, по крайней мере, указанное количество цифр с начальными нулями, если требуется
h, hh
Часы (не считая тех, что составляют часть целого дня). Если указано hh, то отображаются две цифры с начальными нулями, если требуется
m, mm
Минуты (не считая тех, что составляют часть целого часа). Если указано mm, то отображаются две цифры с начальными нулями, если требуется
s, ss
Секунды (не считая тех, что составляют часть целой минуты). Если указано ss, то отображаются две цифры с начальными нулями, если требуется
f, ff, fff, ffff, fffff, ffffff, fffffff
Дробные доли секунды. Количество символов-заполнителей f обозначает точность представления, а остальные цифры отбрасываются
F, FF, FFF, FFFF, FFFFF, FFFFFF, FFFFFFF
Дробные доли секунды. Количество символов-заполнителей F обозначает точность представления, а остальные цифры отбрасываются и конечные нули не отображаются
- QT 4: программирование GUI на С++ - Жасмин Бланшет - Программирование
- C# для профессионалов. Том II - Симон Робинсон - Программирование
- ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. РУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - ГОССТАНДАРТ РОССИИ - Программирование
- Управление исходными текстами. Часть 1. Краткое руководство по CVS - Илья Рыженков - Программирование
- Гибкое управление проектами и продуктами - Борис Вольфсон - Программирование
- Каждому проекту своя методология - Алистэр Коуберн - Программирование
- Разработка ядра Linux - Роберт Лав - Программирование
- Как спроектировать современный сайт - Чои Вин - Программирование
- Творческий отбор. Как создавались лучшие продукты Apple во времена Стива Джобса - Кен Косиенда - Прочая околокомпьтерная литература / Интернет / Программирование
- Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - Александр Фролов - Программирование