KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Герберт Шилдт - C# 4.0: полное руководство

Герберт Шилдт - C# 4.0: полное руководство

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Герберт Шилдт, "C# 4.0: полное руководство" бесплатно, без регистрации.
Перейти на страницу:

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


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

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;

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*