Книга: C# 4.0: полное руководство
Форматирование промежутков времени
Форматирование промежутков времени
Начиная с версии 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 обозначает точность представления, а остальные цифры отбрасываются и конечные нули не отображаются
В приведенной ниже программе демонстрируется форматирование объектов типа TimeSpan
на примере отображения времени, которое приблизительно требуется для вывода на экран 1000 целых значений в цикле for
.
// Отформатировать объект типа TimeSpan.
using System;
class TimeSpanDemo {
static void Main() {
DateTime start = DateTime.Now;
// Вывести числа от 1 до 1000.
for(int i = 1; i <= 1000; i++) {
Console.Write(i + " ");
if((i % 10) == 0) Console.WriteLine();
}
Console.WriteLine();
DateTime end = DateTime.Now;
TimeSpan span = end - start;
Console.WriteLine("Время выполнения: {0:c}", span);
Console.WriteLine("Время выполнения: {0:g}", span);
Console.WriteLine("Время выполнения: {0:G}", span);
Console.WriteLine("Время выполнения: 0.{0:fff} секунды", span);
}
}
Выполнение этой программы приводит к следующему результату, который и в этом случае зависит от конкретных настроек языковых и региональных параметров локализации базового программного обеспечения, а также от загрузки системы задачами и ее быстродействия.
. . .
981 982 983 984 985 986 987 988 989 990
991 992 993 994 995 996 997 998 999 1000
Время выполнения: 00:00:00.0140000
Время выполнения: 0:00:00.014
Время выполнения: 0:00:00:00.0140000
Время выполнения: 0.014 секунды
- ГЛАВА 22 Строки и форматирование
- Уменьшение времени, необходимого для резервного копирования и восстановления
- Ограничение времени ожидания для транзакций (Lock timeout)
- 7.12. Объективизация времени
- Квант времени
- Формула времени. Тайм-менеджмент на Outlook 2013
- Как в документ Microsoft Word вставить текст, в котором отсутствует форматирование?
- Трюки с форматированием
- 12.6. Сигналы реального времени
- Время от времени оптическая мышь начинает мигать. Она сломалась?
- 2.9. Форматирование строк
- Чем отличается быстрое форматирование от обычного?