Добавить в цитаты Настройки чтения

Страница 393 из 502

<b>    Console.WriteLine(&quot;Время в 24-часовом формате: {0:HH:mm}&quot;, dt) ;</b>

<b>    Console.WriteLine(&quot;Дата: {0:ddd МММ dd, yyyy}&quot;, dt) ;</b>

<b>    Console.WriteLine(&quot;Эра: {0:gg}&quot;, dt) ;</b>

<b>    Console.WriteLine(&quot;Время в секундах: &quot; +</b>

<b>                &quot;{0:HH:mm:ss tt}&quot;, dt) ;</b>

<b>    Console.WriteLine(&quot;День месяца в формате m: {0:m}&quot;, dt);</b>

<b>    Console.WriteLine(&quot;Минуты в формате m: {0:%m}&quot;, dt);</b>

<b>  }</b>

<b>}</b>

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

<b>Время: 11:19 AM</b>

<b>Время 24-часовом формате: 11:19</b>

<b>Дата: Thu Feb 11, 2010</b>

<b>Эра: A.D.</b>

<b>Время в секундах: 11:19:40 AM</b>

<b>День месяца в формате m: February 11</b>

<b>Минуты в формате m: 19</b>

Форматирование промежутков времени

Начиная с версии 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.

<b>// Отформатировать объект типа TimeSpan.</b>

<b>using System;</b>

<b>class TimeSpanDemo {</b>

<b>  static void Main() {</b>

<b>    DateTime start = DateTime.Now;</b>

<b>    // Вывести числа от 1 до 1000.</b>

<b>    for(int i = 1; i &lt;= 1000; i++)    {</b>

<b>      Console.Write(i + &quot; &quot;);</b>

<b>      if((i % 10) == 0) Console.WriteLine();</b>

<b>    }</b>

<b>    Console.WriteLine();</b>

<b>    DateTime end = DateTime.Now;</b>

<b>    TimeSpan span = end - start;</b>

<b>    Console.WriteLine(&quot;Время выполнения: {0:c}&quot;, span);</b>

<b>    Console.WriteLine(&quot;Время выполнения: {0:g}&quot;, span);</b>

<b>    Console.WriteLine(&quot;Время выполнения: {0:G}&quot;, span);</b>

<b>    Console.WriteLine(&quot;Время выполнения: 0.{0:fff} секунды&quot;, span);</b>

<b>  }</b>

<b>}</b>

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

<b>. . .</b>

<b>981 982 983 984 985 986 987 988 989 990</b>

<b>991 992 993 994 995 996 997 998 999 1000</b>

<b>Время выполнения: 00:00:00.0140000</b>