Рейтинговые книги
Читем онлайн C# 4.0: полное руководство - Герберт Шилдт

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 224 225 226 227 228 229 230 231 232 ... 294

В приведенном ниже примере программы демонстрируется лишь несколько специальных форматов, которые могут быть определены пользователем.

// Пример применения специальных форматов,

using System;

class PictureFormatDemo {

  static void Main() {

    double num = 64354.2345;

    Console.WriteLine("Формат по умолчанию: " + num);

    // Отобразить числовое значение с 2 разрядами после десятичной точки.

    Console.WriteLine("Значение с 2 десятичными разрядами: " +

           "{0:#.##}", num);

    // Отобразить числовое значение с 2 разрядами после

    // десятичной точки и запятыми перед ней.

    Console.WriteLine("Добавить запятые: {0:#,###.##}", num);

    // Отобразить числовое значение в экспоненциальном представлении.

    Console.WriteLine("Использовать экспоненциальное представление: " +

           "{0:#.###е+00}", num);

    // Отобразить числовое значение, масштабированное в тысячах.

    Console.WriteLine("Значение в тысячах: " + "{0:#0,}", num) ;

    /* Отобразить по-разному положительные, отрицательные и нулевые значения. */

    Console.WriteLine("Отобразить по-разному положительные," +

          "отрицательные и нулевые значения.");

    Console.WriteLine("{0:#.#; (#.##);0.00}", num);

    num = -num;

    Console.WriteLine("{0:#.##;(#.##);0.00}", num);

     num = 0.0;

    Console.WriteLine ("{0:#.##; (#.##);0.00} ", num) ;

    // Отобразить числовое значение в процентах, num = 0.17;

    Console.WriteLine("Отобразить в процентах: {0:#%}", num);

  }

}

Ниже приведен результат выполнения этой программы.

Формат по умолчанию: 64354.2345

Значение с 2 десятичными разрядами: 64354.23

Добавить запятые: 64,354.23

Использовать экспоненциальное представление: 6.435е+04

Значение в тысячах: 64

Отобразить по-разному положительные, отрицательные и нулевые значения.

64354.2

(64354.23)

0.00

Отобразить в процентах: 17%

Форматирование даты и времени

Помимо числовых значений, форматированию нередко подлежит и другой тип данных: DateTime. Это структура, представляющая дату и время. Значения даты и времени могут отображаться самыми разными способами. Ниже приведены лишь некоторые примеры их отображения.

06/05/2005

Friday, January 1, 2010

12:59:00

12:59:00 PM

Кроме того, дата и время могут быть по-разному представлены в отдельных странах. Для этой цели в среде .NET Framework предусмотрена обширная подсистема форматирования значений даты и времени.

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

Таблица 22.7. Спецификаторы формата даты и времени

Спецификатор

Формат

D

Дата в длинной форме

d

Дата в краткой форме

F

Дата и время в длинной форме

f

Дата и время в краткой форме

G

Дата — в краткой форме, время — в длинной

gg

Дата и время — в краткой форме

M

Месяц и день

m

То же, что и M

O

Формат даты и времени, включая часовой пояс. Строка, составленная в формате O, может быть преобразована обратно в эквивалентную форму вывода даты и времени. Это так называемый “круговой” формат

о

То же, что и о

R

Дата и время в стандартной форме по Гринвичу

г

То же, что и R

s

Сортируемый формат представления даты и времени

T

Время в длинной форме

t

Время в краткой форме

U

Длинная форма универсального представления даты и времени; время отображается как универсальное синхронизированное время (UTC)

u

Краткая форма универсального представления даты и времени

Y

Месяц и год

y

То же, что и Y

В приведенном ниже примере программы демонстрируется применение спецификаторов формата даты и времени.

// Отформатировать дату и время, используя стандартные форматы,

using System;

class TimeAndDateFormatDemo {

  static void Main() {

    DateTime dt = DateTime.Now; // получить текущее время

    Console.WriteLine("Формат d: {0:d}", dt);

    Console.WriteLine("Формат D: {0:D}", dt);

    Console.WriteLine("Формат t: {0:t}", dt) ;

    Console.WriteLine("Формат'T: {0:T}", dt);

    Console.WriteLine("Формат f: {0:f}", dt);

    Console.WriteLine("Формат F: {0:F}", dt);

    Console.WriteLine("Формат g: {0:g}", dt);

    Console.WriteLine("Формат G: {0:G}", dt);

    Console.WriteLine("Формат m: {0:m}", dt);

    Console.WriteLine("Формат M: {0:M}", dt);

    Console.WriteLine("Формат о: {0:o}", dt);

    Console.WriteLine("Формат O: {0:O}", dt);

    Console.WriteLine("Формат r: {0:r}", dt);

    Console.WriteLine("Формат R: {0:R}", dt);

    Console.WriteLine("Формат s: {0:s}", dt);

    Console.WriteLine("Формат u: {0:u}", dt);

    Console.WriteLine("Формат U: {0:U}", dt);

    Console.WriteLine("Формат у: {0:y}", dt);

    Console.WriteLine("Y format: {0:Y}", dt) ;

  }

}

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

Формат d: 2/11/2010

Формат D: Thursday, February 11, 2010 Формат t: 11:21 AM

Формат T: 11:21:23 AM

Формат f: Thursday, February 11, 2010 11:21 AM

Формат F: Thursday, February 11, 2010 11:21:23 AM

Формат g: 2/11/2010 11:21 AM

Формат G: 2/11/2010 11:21:23 AM

Формат m: February 11

Формат M: February 11

Формат о: 2010-02-11T11:21:23.3768153-06:00

Формат О: 2010-02-11T11:21:23.3768153-06:00

Формат r: Thu, 11 Feb 2010 11:21:23 GMT

Формат R: Thu, 11 Feb 2010 11:21:23 GMT

Формат s: 2010-02-11T11:21:23

Формат u: 2010-02-11 11:21:23Z

Формат U: Thursday, February 11, 2010 5:21:23 PM

Формат у: February, 2010

Формат Y: February, 2010

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

// Пример простых часов.

using System;

class SimpleClock {

  static void Main() {

    string t;

    int seconds;

    DateTime dt = DateTime.Now;

    seconds = dt.Second;

    for(;;) {

      dt = DateTime.Now;

1 ... 224 225 226 227 228 229 230 231 232 ... 294
На этой странице вы можете бесплатно читать книгу C# 4.0: полное руководство - Герберт Шилдт бесплатно.
Похожие на C# 4.0: полное руководство - Герберт Шилдт книги

Оставить комментарий