Начиная с версии 4.0, в среде .NET Framework появилась возможность форматировать объекты типаTime Span— структуры, представляющей промежуток времени. Объект типаTime Spanможет быть получен самыми разными способами, в том числе и в результате вычитания одного объекта типаDateTimeиз другого. И хотя форматировать объекты типаTime Spanприходится нечасто, о такой возможности все же стоит упомянуть вкратце.

По умолчанию в структуреTime Spanподдерживаются три стандартных спецификатора формата даты и времени:с, 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);

}

}

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

Перейти на страницу:

Похожие книги