Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 154
Текст из файла (страница 154)
Дробная часть числового значения округляется в соответствии с заданным форматом отображения. Если указывается символ Е, то он отображается прописной буквой "Е". А если указывается символ е, то он отображается строчной буквой "е". Для того чтобы знак порядка отображался всегда, используются формы еь или е+. А для отображения знака порядка только при выводе отрицательных значений служат формы Е, е, Е- или е-. Знак; служит разделителем в различных форматах вывода положительных, отрицательных и нулевых значений.
Ниже приведена общая форма пользовательского спецификатора формата, в котором используется знак ";". полоиительшяй формат; отрицательный формат; нулевой формат Рассмотрим следующий пример: сопэо1е.иг1се11пе("(О:».Н; (».Н);0.00)", пьи) > Если значение переменной пцв положительно, то оно отображается с двумя разрядами после десятичной точки. Если же значение переменной пцт отрицательно, то оно также отображается с двумя разрядами после десятичной точки, но в круглых скобках. А если значение переменной пцв равно нулю, то оно отображается в виде строки О.
00. Когда используются разделители, указывать все части приведенной выше формы пользовательского спецификатора формата совсем не обязательно. Так, если требуется вывести только положительные или отрицательные значения, нулевой формат можно опустить. А если отрицательные значения требуется вывести в используемом по умолчанию формате, то можно опустить отрицательный форматт. В этом случае положительный формат и нулевой формат отделяются друг от друга двумя знаками;. В приведенном ниже примере программы демонстрируется лишь несколько возможных специальных форматов, которые могут быть определены пользователем. // Пример применения специальных форматов. цаапд Зуэкеи) с1ааа Р1стцгегогваспеио ( Глава 22. Строки и форматирование 779 всас1с чо10 Магп() ( боцате пцв = 64354.23457 сопво1е.игссеьспе("Формат по умолчанию: " + пцв) // Отобразить числовое значение с 2 разрядами после // десятичной точки.
Сопзо1е.Иггкевспе("Значение с 2 десятичными разрядаыи: "(О:$.Н )", пцв)7 // Отобразить числовое значение с 2 разрядами после // десятичной точки и запятыми перед ней. Сопво1е.иг]Сес1пе("Добавить запятые: (О:4,Н4.Н]",пцв)7 // Отобразить числовое значение в зкспоненциальном представлении. Сопво1е.нг]Сеь1пе("Использовать зкспоненциальное " + "представление: " + "(Ока.Нее+00]", пцв); // Отобразить числовое значение, масштабированное в тысячах. Сопзо1е.иг1Сегапе("Значение в тысячах: "(Окао,]", пшл)т /* Отобразить по-разному положительные, отрицательные и нулевые значения.
*/ Сопво1е.нггкетспе("Отобразить по-разному положительные," + "отрицательные и нулевые значения."); Сопзо1е.нг) Се)) пе ("(О:4.47 (Ф.Н) т 0.00) ", пшл) т пцв = -пцв) сопзо1е.игасе)гпе("(О:4.$4)(Ф.Н))0.00]", пшл)7 пцв = 0.07 Сопво1е.нгаСевапе("(О:М.Нт(4.Н))0.00]", гппл)т // Отобразить числовое значение в процентах. пцв = 0.17) Сопзо1е.иг1гес1пе("Отобразить в процентах: (О:И)", пцв) ) Ниже приведен результат выполнения этой программы. Формат по умолчанию: 64354.2345 Значение с 2 десятичныыи разрядами: 64354.23 Добавить запятые: 64,354.23 Использовать зкспоненциальное представление: 6.435ет04 Значение в тысячах: 64 Отобразить по-разному положительные, отрицательные и нулевые значения.
64354.2 (64354.23) 0.00 Отобразить в процентах: 17% 780 Часть й. Библиотека СЗ Форматирование даты и времени Помимо числовых значений, форматированию нередко подлежит и другой тип данных: Пакеткее. Это структура, представляющая дату и время. Значения даты и времени могут отображаться самыми разными способами. Ниже приведены лишь некоторые примеры их отображения. 06/05/2006 молоау, зале 5, 2006 12:59:00 12г59:00 эм Кроме того, дата и время могут быть по-разному представлены в отдельных странах. Для этой цели в среде .НЕТ Егашец огх предусмотрена обширная подсистема форматирования значений даты и времени. Форматирование даты и времени осуществляется с помощью спецификаторов формата.
Спецификаторы формата даты и времени сведены в табл. 22.7. Конкретное представление даты и времени может отличаться в силу региональных и языковых особенностей и поэтому зависит от параметров культурного характера. Таблица 22.7. Спецификаторы формата даты и времени Спецификатор Формат Дата в длинной форме Дата в краткой форме Дата и время в длинной форме Дата и время в краткой форме Дата — е краткой форме,.время — е длинной Дата и время — в краткой форме Месяц и день То же, что и м Формат даты и времени, включая часовой пояс. Строка, составленная в формате о, может быть преобразована обратно в эквивалентную форму вывода даты и времени.
Это так называемый "круговой" формат То же, что и о Дата и время в стандартной форме по Гринвичу То же, что и к Сортируемый формат представления даты и времени Время в длинной форме Время в краткой форме Длинная форма универсального представления даты и времени, время отображается как универсальное синхронизированное время (пТС1 Краткая форма универсального представления даты и времени Месяц и год То же, что и у Глава 22, Строки и форматирование 781 В приведенном ниже примере программы демонстрируется примеиеиие специфика- торов формата даты и времеии.
// Отформатировать дату и время, используя стандартные форматы. с овгп9 зувкеит с1авв Т1иеапбпакетогиаСОеио ( ясаг1с чогб Маги() ( Оаоет1ие бк = ОасеТ1ие.мои( // получить текущее время Сопво1е .Иг1сев1пе (" Формат бс (О сб) ", бк) т Сопво1е.иг1сеь1пе("Формат О: (О:О)", бк); Сопяо1е.Игткет все("Формат С: (Осо)", бе); сопво1е.иг1сеь1пе("Формат т: (Ост)", с(с); Сопво1е.иг1сепьпе( Формат Г: (О:Г)", бс); Сопво1е.иг1ееь1пе("Формат Гс (Осу)", бс)) Сопзо1е.иг1кеь1пе("Формат 9: (О:О)", бг); Сопзо1е.игткеь1пе("Формат бп (Ого)", бс); Сопво1е.иг1ееь1пе("Формат и: (О:и)", бо)т Сопво1е.иггкепгпе("Формат М: (Оси)", бк)т сопяо1е.иг1гетгпе("Формат о: (О:о)", бк)т Сопяо1е.иг1кеЬ1пе("Формат О: (О:0]", бс)т Сволоте.иг1сеп1пе("Формат г: (О:г)", бс)т Сопво1е.игтоеп1пе("Формат и: (О:в)", бг)т Сопяо1е.иг1ке11пе("Формат вс (О:з)", бо)т Сопво1е.Иггоеьтпе("Формат о: (О:и)", бс)т сопяо1е.иг1геькпе("Формат и: (О:о)", бс)т Сопво1е.иг1ое11пе("Формат у: (О:у)", бк)' Сопво1е.Иггеетфпе("Х Гогиакс (О:У]", бс)т ) ) Эта программа дает следующий результат, который, впрочем, зависит от настроек языковых и региональных параметров локализации базового программного обеспечения: Формат Формат Формат Формат Формат Формат Формат Формат с(с б/18/2008 0: Иебпеябау, Юопе 18, 2008 11:53 ЛМ Тс 11:53с09 АМ Гс Иебпевбау, Юопе 18, 2008 11с"53 ЛМ Гс Иебпеябау, Юипе 18, 2008 11:53:09 ЬМ дс б/18/2008 11:53 ЛМ Ос б/18/2008 11:53:09 АМ 782 Часть!1.
Библиотека Са В следующем примере программы воспроизводятся очень простые часы. Время обновляется каждую секунду, и каждый час компьютер издат звонок. Для получения отформатированного строкового представления времени перед его выводом в этой программе используется метод тоясг1пд () из структуры Пасет1юе. Через каждый час символ звукового предупреждающего сигнала присоедиияется к отформатированной строке, представляющей время, в результате чего звенит звонок // Пример простых часов.
изгпд Яузсеют с1азз 51юр1е01оск ( зсасгс чогб Мабп() ( вгггпд ги гпг зесопбвт ОасеТ1юе бс = ОасеТ1юе.ион; весопбз = бс.зесопбт бог(тт) ( бс ОасеТгюе.ком) // обновить время через каждую секунду гб(весопбв != бг.зесопб) ( весопбз = бс.зесопбт Г = бг.тозсгтпд("т")) 1Т(бг.м1пиге =0 за бс.яесопб 0) Г = С 4 "1а") // произвести звонок через каждый час Сопво1е.игьгесгпе(Г)т Определение пользовательского формата даты и времени Несмотря иа то что стандартные спецификаторы формата даты и времени предусмотрены практически иа все случаи жизни, пользователь может определить свои собствеи- Формат ю: Формат М; Формат о: Формат О: Формат г: Формат К: Формат в: Формат н: Формат П: Формат у: Формат У: Оспе 18 7ппе 18 2008-Об-18Т11:53."09.5074933-05."00 2008-Об-18Т11:53:09.5074933-05:00 Хеб, 18 Одп 2008 11:53:09 ЯМТ Хеб, 18 Очп 2008 11:53:09 ЯМТ 2008-Об-18Т11:53:09 2008-06-18 11:53к092 Хебпезбау, Юане 18, 2008 4:53:09 РМ Одне, 2008 Одпе, 2008 Глава 22, Строки и форматирование 783 ные специальные форматы.
Процесс определения пользовательских форматов даты и времени мало чем отличается от описанного выше для числовых типов значений. По существу, пользователь создает пример (т.е. изображение) того, как должны выглядеть выводимые данные даты и времени. Для определения пользовательского формата даты и времени служат символы-заполнители, перечисленные в табл. 22.8. '(бублипа 22.8. Символы-заполнители специального формата даты и времени Назначение Символ-заполнитель День месяца в виде числа в пределах от 1 до 31 День месяца в виде числа в пределах от 1 до 31, Числовые зна- чения в пределах от 1 до 9 дополняются начальным нулем Сокращенное название дня недели Полное название дня недели Дробная часть числового значения, обозначающего секунды.
Количество десятичных разрядов определяется числом заданных символов г Эра Часы в виде числа в пределах от 1 до 12 Часы в виде числа в пределах от 1 до 12. Числовые значения в пределах от 1 до 9 дополняются начальным нулем Часы в виде числа в пределах от О до 23 нн Часы в виде числа в пределах от О до 23. Числовые значения в пределах от 1 до 9 дополняются начальным нулем Часовой пояс, указываемый в часах.
Для автоматической коррекции местного времени и универсального синхронизированного времени (0ТС) используется значение свойства расетгле. кгпш (Этот спецификатор формата рекомендуется теперь вместо спецификаторов к-типа.) Минуты Минуты. Числовые значения в пределах от 1 до 9 дополняются начальным нулем Месяц в виде числа в пределах от 1 до 12 Месяц в виде числа в пределах от! до 12. Числовые значения в пределах от 1 до 9 дополняются начальным нулем Сокращенное название месяца Полное название месяца Секунды Секунды.
Числовые значения в пределах от 1 до 9 дополняются начальным нулем Символ "А" или "Р", обозначающий время А,М, (до полудня) или Р.М. (после полудня) соответственно А.М. или Р М. Год в виде двух цифр, если недостаточно одной 784 Часть )). Библиотека СЭ Окончание табл, 22 8 Символ-заполнитель Назначение Год в виде двух цифр. Числовые значения в пределах от ! до 9 дополняются начальным нулем Уу Год в виде трех цифр Год в виде четырех цифр Год в виде пяти цифр Смещение часового пояса в часах Ууу УУУУ УУУУУ Смещение часового пояса в часах. Числовые значения в преде- лах от! до 9 дополняются начальным нулем Смещение часового пояса в часах и минутах Разделитель для составляющих значения времени Раздели~ель для составляющих значения даты Стандартный формат, соответствующий спецификатору форма- та гас // Отформатировать дату и время, используя специальные форматы.