C#   Уроки программирования с нуля. Си-шарп для чайников   C#

Здравствуйте, гость!
Вход
Регистрация


Форматирование строк в Си-шарп. Метод System.String.Format
В уроке 9 была рассмотрена работа со строками в Си-шарп, сейчас же мы поговорим о их форматировании. Потребность в форматировании строк возникает довольно часто (вывод определенного количества знаков после запятой для числа, или дата в нужом формате и. т.д.).

В Си-шарп возможностью задать форматирование обладают следующие методы:

- System.String.Format
- Console.WriteLine
- StreamWriter.Write
- ToString

Методы WriteLine и Write используются для вывода информации в консоль, и при этом дают возможность отформатировать вывод. Метод Format класса String предназначен конкретно для форматирования. Он возвращает отформатированную строку. Разницы между самим форматированием для этих методов нет. Форматирование в методе ToString можно задать только для чисел и дат.

Общая структура форматирования строк имеет следующий вид:

String.Format("строка формата", arg0, arg1, …, argn);

arg0 и arg1 здесь – аргументы форматирования (числа, строки, даты, и т. д.), из которых в результате будет создана новая отформатированная строка.

Строка формата может содержать обычные символы, которые будут отображены в том виде, в котором они заданы, и команды форматирования. Команда форматирования заключается в фигурные скобки и имеет следующую структуру:

{[номер аргумента], [ширина]:[формат]}

По [номеру аргумента] указывается к какому аргументу будет применена данная команда (отсчет аргументов начинается с нуля).
[ширина] задает минимальный размер поля.
[формат] – спецификатор формата.

Параметры [ширина] и [формат] не являются обязательными.

Пример простого форматирования:

string formattedString = string.Format("Result is {0}", 5); // "Result is 5"

Здесь на место команды {0} подставляется 0-й аргумент.

int num1 = 5, num2 = 3;
string formattedString = string.Format("{0}+{1}={2}", num1, num2, num1+num2); // "5+3=8"
Console.WriteLine(formattedString);
Console.ReadLine();


Параметр "ширина"

Иногда необходимо отформатировать строки, содержащие числа, чтобы они были выравнены по левому или правому краю и имели одинаковую длину. К числу, которое имеет меньше символов, чем значение ширины, будут добавлены пробелы слева (положительная ширина) или справа (отрицательная ширина):

Console.WriteLine("Result is {0, 6}", 1.2789);
Console.WriteLine("Result is {0, 6}", 7.54);
Console.WriteLine("Result is {0, -6}", 1.2789);
Console.WriteLine("Result is {0, -6}", 7.54);

В результате получится, что в первых двух строках числа выровнены по правому краю, в двух других по левому:

Result is 1,2789
Result is    7,54
Result is 1,2789
Result is 7,54

Встроенные форматы числовых данных

А теперь мы рассмотрим параметр команды форматирования после двоеточия – формат. Для числовых аргументов определен целый ряд форматов, все они описаны в таблице 1. Почти для всех форматов можно также задать точность. Например, формат для чисел с фиксированной точкой «f» по умолчанию выводит не больше двух знаков после точки. Чтобы задать 4 знака - нужно указать после обозначения формата необходимое число, «f4».

Таблица 1
Специальный символФорматОписание
c/CДенежная единицаУказывает количество десятичных знаков
d/DЦелые числаУказывает минимальное количество цифр. При необходимости добавляются нули
e/EЭкспоненциальные числаУказывает количество десятичных знаков
f/FЧисла с фиксированной точкойУказывает количество десятичных знаков
g/GФорматы e/E и g/GИспользует более короткий формат из двух: f/F и g/G
n/NЧисла с фиксированной точкой с отделением групп разрядовУказывает количество десятичных знаков
p/PПроцентыУмножает число на 100 и выводит со знаком процентов. Указывает количество десятичных знаков
r/RФормат кругового преобразования. Только фиксированная точкаФорматирует число в строку таким образом, что его можно обратно преобразовать без потерь точности
x/XШестнадцатеричные числаУказывает минимальное количество цифр. При необходимости добавляются нули

Пример использования некоторых из встроенных форматов:

Console.WriteLine("{0:c}", 5.50); // "5,50 грн."
Console.WriteLine("{0:c1}", 5.50); // "5,5 грн."
Console.WriteLine("{0:e}", 5.50); // "5,500000е+000"
Console.WriteLine("{0:d}", 32); // "32"
Console.WriteLine("{0:d4}", 32); // "0032"
Console.WriteLine("{0:p}", 0.55); // "55,00%"


Пользовательский формат числовых данных

В таблице 1 были описаны стандартные форматы для числовых данных, но иногда необходимо определить некоторый собственный формат. Для создания пользовательских форматов используются специальные символы (Таблица 2):

Таблица 2
Специальный символЗначение
0Цифра или ноль
#Цифра
.Разделитель дроби
,Разделитель тысяч
%Процент
eЭкспонента
;Определяет разделы, которые описывают форматы для положительных, отрицательных чисел и нуля
\Экранирование специальных символов. Позволяет вставлять спец-символы как текст

Пример использования пользовательских форматов:

Console.WriteLine("{0:0000.00}", 1024.32); // "1024,32"
Console.WriteLine("{0:00000.000}", 1024.32); // "01024,320"
Console.WriteLine("{0:####.###}", 1024.32); // "1024,32"
Console.WriteLine("{0:####.#}", 1024.32); // "1024,3"
Console.WriteLine("{0:#,###.##}", 1024.32); // "1 024,32"
Console.WriteLine("{0:##%}", 0.32); // "32%"
Console.WriteLine("{0:<####.###>;[####.###];ноль}", 1024.32); // "<1024,32>"
Console.WriteLine("{0:<####.###>;[####.###];ноль}", -1024.32); // "[1024,32]"
Console.WriteLine("{0:<####.###>;[####.###];ноль}", 0); // "ноль"


Здесь стоит отметить, что если количество цифр целой части числа больше чем количество символов «0» или «#» в формате, целая часть числа всё равно будет выводиться полностью.

Встроенные форматы даты и времени

Для работы с датой и временем существует отдельный набор стандартных форматов. Данные форматы наведены в таблице 3:

Таблица 3
Специальный символФорматПример
dКороткая дата30.06.2014
DДлинная дата30 июня 2014 г.
tКороткое время22:30
TДлинное время22:30:10
fДлинная дата/короткое время30 июня 2014 г. 22:30
FДлинная дата/длинное время30 июня 2014 г. 22:30:10
gКороткая дата/короткое время30.06.2014 22:30
GКороткая дата/длинное время30.06.2014 22:30:10
M/mМесяц и деньиюня 30
O/oОбратный2014-06-30T22:30:10.0000000
R/rRFC1123Mon, 30 Jun 2014 22:30:10 GMT
sДля сортировки2014-06-30T22:30:10
uЛокальное, в универсальном формате2014-06-30 22:30:10Z
UGMT30 июня 2014 г. 19:30:10
YГод и месяцИюнь 2014

Пример использования стандартных форматов даты и времени:

Console.WriteLine("{0:d}", DateTime.Now); // "30.06.2014"
Console.WriteLine("{0:D}", DateTime.Now); // "30 июня 2014 р."
Console.WriteLine("{0:t}", DateTime.Now); // "2:57"
Console.WriteLine("{0:T}", DateTime.Now); // "2:57:53"
Console.WriteLine("{0:U}", DateTime.Now); // "29 июня 2014 р. 23:57:53"
Console.WriteLine("{0:Y}", DateTime.Now); // "Июнь 2014 р."


Пользовательский формат даты и времени

Как и в случае с числовыми данными, для даты и времени можно определять пользовательский формат. Для этого используются специальные символы, которые наведены в таблице 4 (на примере даты 30.06.2014 22:30:10.1234):

Таблица 4
Специальный символЗначениeРезультат
yГод 0-94
yyГод 00-9914
yyyyГод, 4 цифры2014
MМесяц 1-126
MMМесяц 01-1206
dДень 1-310
ddДень 01-3130
hЧас 1-122
hhЧас 01-1210
HЧас 1-2422
HЧас 01-2422
mМинута 0-5930
mmМинута 00-5930
sСекунда 0-5910
ssСекунда 00-5910
f – ffffffДоли секунды12 (для ff)
F-FFFFFFДоли секунды, если они не равны 012 (для ff)
MMMСокращенное имя месяцаИюн
MMMMИмя месяцаИюнь
dddСокращенное имя дня неделиПн
ddddИмя дня неделипонедельник
ttМаркер для "AM" и "PM" 12-часового форматаPM
zzСмещение временной зоны, короткое+03
zzzСмещение временной зоны, полное+03:00
ggЭра A.D.
:Разделитель времени22:30:10
/Разделитель даты30.06.2014
\Экранирование

Пример использования пользовательских форматов даты и времени:

Console.WriteLine("{0:y yy yyy yyyy}", DateTime.Now); // "14 14 2014 2014"
Console.WriteLine("{0:d dd ddd dddd}", DateTime.Now); // "30 30 Пн понедельник"
Console.WriteLine("{0:M MM MMM}", DateTime.Now); // "6 06 Июн"
Console.WriteLine("{0:HH.mm.ss dd-MMM-yyyy}", DateTime.Now); // "03.21.22 30-Июн-2014"
Console.WriteLine("{0:z zz zzz}", DateTime.Now); // "+3 +03 +03:00"


Форматирование с использованием метода ToString

Все правила форматирования, описанные выше, могут быть использованы в перегруженном методе ToString для чисел и дат:

Console.WriteLine(DateTime.Now.ToString("dd MMM yyyy")); // 30 Июн 2014


Региональные параметры CultureInfo

В примерах выше стандартные параметры культуры. Деньги выводились в рублях, названия месяцев, дней на русском языке. CultureInfo также влияет на разделитель в числах, количество символов после точки по умолчанию и другое. Иногда возникает потребность изменить это, и для этого используется CultureInfo. По умолчанию CultureInfo соответствует настройкам Windows (например российские региональные настройки). Чтобы задать собственную культуру при форматировании, используя метод Format, необходимо в конструктор этого метода первым аргументом передать объект CultureInfo.

В примере ниже текущий день выводится с текущими настройками CultureInfo (российскими), с английскими (английский Соединенных Штатов), и с украинскими:

string formattedString = string.Format(new System.Globalization.CultureInfo("en-US"), "{0:dddd} Money - {1:c}", DateTime.Now, 15);
Console.WriteLine("{0:dddd} Money - {1:c}", DateTime.Now, 15); // "понедельник Money - 15,00 руб."
Console.WriteLine(formattedString); // "Monday Money - $15.00"
formatedString = string.Format(new System.Globalization.CultureInfo("uk-UA"), "{0:dddd} Money - {1:c}", DateTime.Now, 15);
Console.WriteLine(formattedString); // "понеділок Money - 15,00 грн."


Домашнее задание

Есть массив дат (с временем) и массив температур, и они соответствуют друг другу. Температуры в массиве имеют вид в формате: «26.3 27.1 30 24.7 25». Необходимо вывести информацию таким образом:

Июн 30 (Пн) 09:31 > 26,3 °C
Июн 30 (Пн) 10:31 > 27,1 °C
Июн 30 (Пн) 11:31 > 30,0 °C

Дробная часть температуры должна обязательно быть длиной в один знак, даже если температура целая.
Понравилась статья? Подпишись на рассылку и узнавай первым о новых уроках по почте!


Поделиться с друзьями:
30 июн 2014 22:33
nikstas056 29 янв 2018 17:21
class Program
{
static void Main(string[] args)
{
double[] temp = { 26.3, 27.1, 30, 24.7, 25 };
for (int i = 0; i < temp.Length; i++)
{
DateTime dateTime = new DateTime(2014, 06, 30, i + 9, 31, 0);
var x = String.Format("{0:MMM dd (ddd) HH:mm}", dateTime);
Console.WriteLine(x.Substring(0,1).ToUpper() + x.Remove(0,1) + " > " + String.Format("{0:f1}",temp[i]) + " °C");
}
Console.ReadKey();
}
}

ElvaGey 26 дек 2017 19:59
апрапрапр

Victor 01 дек 2017 13:37
Стабильная работа, высокая зарплата!

Вы работаете дома! Полностью честно и прозрачно;
Доступно для всех - неважно кто вы и какой у вас опыт работы в интернете!
Вы будете зарабатывать: свыше четырёх тысяч рублей в день!
Сложность: Несложно!
Оплата: - уже на следующий деньги у вас на счету!

Ознакомтесь с условиями у нас на сайте. > pisma.exrabota.ru < Скопируйте и вставьте в адресную строку Вашего браузера.

Olesya 29 ноя 2017 13:22
Платим за лайки! - Выплаты по требованию!

Современный онлайн-сервис предоставляет настоящие лайки на фото покупателей, те что готовы платить за качество.

Собственно для этого мы и подбираем удалённых сотрудников, те которые станут осуществлять работу, то есть ставить лайки и зарабатывать за это деньги.

Чтобы быть нашим удалённым работником и приступить ставить лайки, зарабатывая при этом 45 руб. за 1 поставленный лайк,

достаточно обязательно зарегистрироваться на нашем интернет сервисе. > like.exrabota.ru <

Получение заработанных финансовых средств ежедневно в течении пары минут.

DaryaLoAn 12 ноя 2017 03:45
Добрый день. Подскажите, пожалуйста, в чём он,
смысл жизни? Как найти и обрести счастье?

Вячеслав 06 ноя 2017 20:16
Стабильная работа с обучением, оплата ежедневно!

Вы работаете дома! Полностью честно и прозрачно;
Доступно для всех - неважно кто вы и какой у вас опыт работы в интернете!
Вы будете зарабатывать: свыше четырёх тысяч рублей в день!
Сложность: Несложно!
Оплата: - уже на следующий деньги у вас на счету!

Более подробная информация у нас на сайте. > pisma.exrabota.ru < Скопируйте и вставьте в адресную строку Вашего браузера.

Avito321vom 28 окт 2017 03:42
<b>Пополение баланса Авито (Avito) за 50%</b> | <b>Телеграмм @a1garant</b>

<b>Мое почтение, дорогие друзья!</b>

Всегда рады предоставить Всем вам сервис по пополнению баланса на действующие активные аккаунты Avito (а также, абсолютно новые). Если Вам нужны конкретные балансы - пишите, будем решать. Потратить можно на турбо продажи, любые платные услуги Авито (Avito).

<b>Аккаунты не Брут. Живут долго.</b>

Процент пополнения в нашу сторону и стоимость готовых аккаунтов: <b>50% от баланса на аккаунте.</b>
Если требуется залив на ваш аккаунт, в этом случае требуются логин и пароль Вашего акка для доступа к форме оплаты, пополнения баланса.
Для постоянных клиентов гибкая система бонусов и скидок!

<b>Гарантия: </b>

<b>И, конечно же ничто не укрепляет доверие, как - Постоплата!!!</b> Вперед денег не просим...

Рады сотрудничеству!

<b>Заливы на балансы Авито</b>
________

как удалить свой аккаунт на авито если заблокировали
программа для регистрации аккаунтов авито
блокируют аккаунты на авито
как восстановить аккаунт на авито если его заблокировали
хочу подать объявление на авито пишет номер подтвержден в аккаунте

Avito321vom 29 сен 2017 02:37
<b>Пополение баланса Авито (Avito) за 50%</b> | <b>Телеграмм @a1garant</b>

<b>Приветствую вас, дорогие друзья!</b>

Рады будем предоставить Всем вам сервис по пополнению баланса на действующие активные аккаунты Avito (а также, абсолютно новые). Если Вам необходимы определенные балансы - пишите, будем решать. Потратить можно на турбо продажи, любые платные услуги Авито (Avito).

<b>Аккаунты не Брут. Живут долго.</b>

Процент пополнения в нашу сторону и стоимость готовых аккаунтов: <b>50% от баланса на аккаунте.</b>
Если требуется залив на ваш аккаунт, в этом случае требуются логин и пароль Вашего акка для доступа к форме оплаты, пополнения баланса.
Для постоянных заказчиков гибкая система бонусов и скидок!

<b>Гарантия: </b>

<b>И, конечно же ничто не укрепляет доверие, как - Постоплата!!!</b> Вперед денег не просим...

Рады сотрудничеству!

<b>Заливы на балансы Авито</b>
________

залита авито ру
на авито номер привязан к другому аккаунту что делать
аккаунты world of tanks на авито
дача на обском заливе авито
авито аккаунты компании

Nataliehic 25 сен 2017 02:23
Данное сообщение размещено здесь с помощью XRumer + XEvil 3.0
XEvil 3.0 - революционное приложение, способное обходить практически любую антибот-защиту.
Распознавание капчи Google, Facebook, Yandex, VKontakte, Captcha Com и свыше 8400 тысяч других типов!
Вы читаете это - значит, это работает! ;)
Подробности на официальном сайте XEvil.Net, есть бесплатная демо-версия.

http://www.laroma-pizzas.com/pizza.asp?AAA=608036 14 сен 2017 15:53
That doesnt mean that we wont be seeing some new creations to round out 2015 though, a.

http://www.massage-angers-orion.com/orion.asp?AAA=723378 13 сен 2017 03:12
Filed under: Featured Lifestyle Sneakers Nike Air Force 1s Upcoming SneakersTags: Nike Air Force 1 Nike Lunar Force 1 Duckboot Pages: 1 2

http://www.le-clos-des-alouettes.com/des.asp?AAA=640812 12 сен 2017 04:55
That doesnt mean that we wont be seeing some new creations to round out 2015 though, a.

http://www.lesjolieschoses.fr/hoses.asp?AAA=666057 10 сен 2017 02:00
Filed under: Asics Upcoming SneakersTags: Asics Gel Lyte III Asics Gel Lyte V

http://adidas.aashop.fr/Adidas-Chaussures-De-Course-Royalblu-Tee-Shirt-Adidas-Pas-Cher-AI5130.html 03 сен 2017 03:17
The 19-year-old winger is in the starting line up with fellow academy graduate Sam McQueen being given a place on the bench.

http://nk.bbsoldes.fr/Nike-KD-5-Bleu-Vert-Rouge-Nike-Kd-6-Pas-Cher-WO14169.html 01 сен 2017 20:19
"der as fans sneak into stadiumSHAW NO CERTAINTYGareth Southgate tells Luke Shaw he must start playing for Manchester United to regain England spotKylian Me SoftlySergio Ramos tells Kylian Mbappe he is welcome at Real Madrid ahead of France vs Spain friendlyRAHEEM RECOVERYRaheem Sterling is fit for Manchester City&#039;s crunch Premier League clash at Arsenal#pogdaddyLoving son Paul Pogba visits dad Fassou Antoine in hospital to celebrate his 79th birthday after Frenchman is ruled out of Spain friendly through injuryFeeling smallInjured Chris Smalling looks down in the dumps after limping away from restaurant with his leg brace onHit the Gym, JackGareth Southgate warns Jack Wilshere to prove his fitness if he wants to win back an England spotCHILLINGNo time for cold feet as SunSport visit Fulham&#039;s training ground for a spot of cryotherapy treatmentICE COOL KIDJermain Defoe reveals cryotherapy chamber sessions are helping him stay young but his mum is ruining vegan diet by serving up meatUNITED RANT BOYSPolice are investigating Manchester United fans for homophobic chanting at ChelseaZaha had &#039;no passion&#039;Gareth Southgate sensationally claims Wilfried Zaha did not have the heart to play for England December3 Man City (a)10 West Brom (h)13 Sunderland (a)17 Crystal Palace (a)26 Bournemouth (h)31 Stoke (h)January2 Tottenham (a)14 Leicester (a)21 Hull (h)February1 Liverpool (a)4 Arsenal (h)11 Burnley (a)25 Swansea (h)March4 West Ham (a)11 Watford (h)18 Stoke (a)April1 Crystal Palace (h)5 Man City (h)8 Bournemouth (a)15 Man Utd (a)22 Southampton (h)29 Everton (a)May6 Middlesbrough (h)13 West Brom (a)21 Sunderland (h)The Sun."

http://armani.laurene-martinez.fr/Blouson-noir-et-rouge-EA7-Blouson-Cuir-Armani-SL1698.html 26 авг 2017 13:09
England spy Sammy Lee checked on Keane after his last late call-up.

nalinacag 25 июн 2017 21:25
Интересная работа с обучением, высокая оплата!

Вы работаете дома! Полностью честно и прозрачно;
Доступно для всех - неважно кто вы и какой у вас опыт работы в интернете!
Вы будете зарабатывать: свыше четырёх тысяч рублей в день!
Сложность: Несложно!
Оплата: - уже на следующий деньги у вас на счету!

Более подробная информация у нас на сайте. > realno-money.tk < Скопируйте и вставьте в адресную строку Вашего браузера.

Святослав 29 дек 2016 05:30

using System;
using System.Collections.Generic;
namespace ConsoleApplication64
{
class Program
{
static void Main(string[] args)
{
List <DateTime> dates = new List<DateTime>();

//Список дат
dates.Add(new DateTime(2014, 6, 30, 9, 31, 0));
dates.Add(new DateTime(2014, 6, 30, 10, 31, 0));
dates.Add(new DateTime(2014, 6, 30, 10, 31, 0));

//Массив температур
double[] temps = new double[3] { 26.3, 27.1, 30.0 };

Console.WriteLine("{0:MMM dd(ddd) h:mm > }" + temps[0] + "°C", dates[0]);
Console.WriteLine("{0:MMM dd(ddd) h:mm > }" + temps[1] + "°C", dates[1]);
Console.WriteLine("{0:MMM dd(ddd) h:mm > }" + "{1:f1}" + "°C", dates[2], temps[2]);
Console.ReadLine();
}
}
}

Ерлан 10 ноя 2016 04:59
string[] dtarray = new string[3];
string[] grarray = new string[3] { "26,3", "27,1", "30,0" };
DateTime ti = DateTime.Now;
string dt = String.Format("{0:MMM d}({0:ddd})", ti);
for (int i = 0; i < dtarray.Length; i++)
{
dtarray[i] = i == 0 ? ti.ToString("t") : (ti.AddHours(1)).ToString("t");
Console.WriteLine(String.Format("{0} {1} > {2} °C", dt, dtarray[i], grarray[i]));
}

Console.ReadKey();

FOX 08 ноя 2016 12:57
namespace ConsoleApplication11
{
class Program
{
static void Main(string[] args)
{
DateTime[] d = new DateTime[3];
double[] t = new double[3];

d[0] = Convert.ToDateTime("01.01.2016 15:25");
d[1] = Convert.ToDateTime("02.02.2016 17:20");
d[2] = Convert.ToDateTime("07.04.2016 22:17");
t[0] = 10.11;
t[1] = 15.36;
t[2] = 20.39;

TempDat tt = new TempDat(d,t);
tt.Vivod();
}
}
class TempDat
{
DateTime[] date=new DateTime[3];
double[] temp=new double[3];

//Конструктор класса
public TempDat(DateTime[] Date,double[] Temp)
{
date = Date;
temp = Temp;
}

//Метод класса
public void Vivod()
{
int i=0;
string formattedString;
foreach (DateTime dd in date)
{
//делаем форматирование чтоб месяц писался по русски, а градусы выводились через точку
formattedString = string.Format(new System.Globalization.CultureInfo("ru-RU"), "{0: MMMM dd (ddd) HH:mm} > ", dd);
formattedString = formattedString + string.Format(new System.Globalization.CultureInfo("us-US"), "{0:####.#}°C", temp[i]);
Console.WriteLine(formattedString);
i++;
}
Console.ReadKey();
}


}
}

Doxako 22 сен 2016 22:44
public static void Main(string[] args)
{
double[] arrayT = {22.4, 22.44, 21.25};
string[] arrayD = {"Июн 30 (Пн) 09:31", "Июн 30 (Пн) 10:31", "Июн 30 (Пн) 11:31"};
for(int i = 0; i < arrayD.Length; ++i)
Console.WriteLine("{0} > {1:f2}°C", arrayD[i], arrayT[i]);

Console.Read();
}

Александр Михалев 23 июн 2016 18:40

static void Main(string[] args)
{
string[] date = new string[3] { "Июн 30 (Пн) 09:31", "Июн 30 (Пн) 10:31", "Июн 30 (Пн) 11:31" };
string[] t = new string[3] { "26,3 °C", "27,1 °C", "30,0 °C" };
Console.WriteLine("{0} > {1}", date[0], t[0]);
Console.WriteLine("{0} > {1}", date[1], t[1]);
Console.WriteLine("{0} > {1}", date[2], t[2]);
Console.ReadLine();
}

Zuzundra 11 фев 2016 19:31
using System;
using System.Collections;
using System.Text.RegularExpressions;
using System.Collections.Generic;


namespace homeWork
{
class DatesWithTime
{
private string Month;
private string Date;
private string Day;
private string TimeX;
public DatesWithTime(string month, string date, string day, string timeX)
{
Month = month;
Date = date;
Day = day;
TimeX = timeX;
}
public string CompletingString ()
{
string compString = string.Format ("{0} {1} ({2}) {3}", this.Month.Remove(3), this.Date, this.Day.Remove(2), this.TimeX);
return compString;
}

}

class Tempretures
{
private float CurrentTempreture;
public Tempretures(float currentTempreture)
{
CurrentTempreture = currentTempreture;
}
public string CompletingStringT ()
{
string compStringT = string.Format ("> {0:0.0}", this.CurrentTempreture);
return compStringT;
}
}



class Program
{
public static void Main (string[] args)
{
List<DatesWithTime> DatesList = new List<DatesWithTime> ();
DatesList.Add(new DatesWithTime("June", "14", "Monday", "12:30"));
DatesList.Add(new DatesWithTime("September", "18", "Wednesday", "14:20"));
DatesList.Add(new DatesWithTime("November", "24", "Tuesday", "12:30"));
// DatesList.Add(new DatesWithTime("November", "23", "Tuesday", "12:30")); - добавление лишнего элемента


List<Tempretures> TempList = new List<Tempretures> ();
TempList.Add(new Tempretures(20.8f));
TempList.Add(new Tempretures(19f));
TempList.Add(new Tempretures(25.46f));

if (DatesList.Count == TempList.Count) {
foreach (DatesWithTime i in DatesList) {
int m = DatesList.IndexOf (i);
string uberString = string.Format ("{0} {1}", i.CompletingString (), TempList [m].CompletingStringT ());
Console.WriteLine (uberString);
}
}
else
Console.WriteLine ("Data is not finished");


Console.WriteLine ("hurey!");


Console.ReadKey ();

}
}
}

neronovs 18 янв 2016 14:47

static void Main(string[] args)
{
double[] temp = new double[5] { 25.1, 24.4, 26.9, 31.0, 28.7};
DateTime[] date = new DateTime[5];

date[0] = new DateTime(2015, 06, 01, 10, 0, 0);
date[1] = new DateTime(2015, 06, 11, 10, 0, 0);
date[2] = new DateTime(2015, 06, 21, 10, 0, 0);
date[3] = new DateTime(2015, 07, 01, 10, 0, 0);
date[4] = new DateTime(2015, 07, 11, 10, 0, 0);

for (int i = 0; i < temp.Length; i++)
{
Console.WriteLine(" {0:MMM dd (ddd) HH:mm} > {1:00.0} \u00B0C", date[i], temp[i]);
}

Console.ReadKey();
}

Kolsky 16 янв 2016 21:06

/*
* Сделано в SharpDevelop.
* Пользователь: Kolsky
* Дата: XX.XX.XXXX
* Время: XX:YY
*
* Для изменения этого шаблона используйте Сервис | Настройка | Кодирование | Правка стандартных заголовков.
*/
using System;

namespace n
{
class Program
{
public static void Main(string[] args)
{
double[] t_in_degC=new double[5];
t_in_degC[0]=26.3;
t_in_degC[1]=27.1;
t_in_degC[2]=30;
t_in_degC[3]=24.7;
t_in_degC[4]=25;
DateTime[]at_Time=new DateTime[5];
for(int i=0;i<5;i++)
{
at_Time[i]=new DateTime(2014,6,30,9+i,31,0);
Console.WriteLine("{0:MMM dd (ddd) HH:mm}",at_Time[i]," > "+t_in_degC+" °С");
}
Console.ReadKey(true);
}
}
}

shokirjon 19 окт 2015 18:30
9. Вывести k цифру последовательности 182764125... (кубы натуральных чисел).

Vitalia 01 окт 2015 21:17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
DateTime[] date = new DateTime [2];
double[] temp = new double[2] {14.5,17.0};

date[0] = new DateTime (2015, 10, 1, 23,59,59);
date[1] = new DateTime(2015, 10, 2, 23, 59, 59);

for (int i = 0; i < date.Length;i++ )

{


Console.WriteLine(" {0:MMMM dd (ddd) HH:mm} температура була рівна ---- {1:00.0} °C", date[i] , temp[i]);

}
}
}
}

Vitalia 01 окт 2015 21:17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
DateTime[] date = new DateTime [2];
double[] temp = new double[2] {14.5,17.0};

date[0] = new DateTime (2015, 10, 1, 23,59,59);
date[1] = new DateTime(2015, 10, 2, 23, 59, 59);

for (int i = 0; i < date.Length;i++ )

{


Console.WriteLine(" {0:MMMM dd (ddd) HH:mm} температура була рівна ---- {1:00.0} °C", date[i] , temp[i]);

}
}
}
}

Vitalia 01 окт 2015 21:17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
DateTime[] date = new DateTime [2];
double[] temp = new double[2] {14.5,17.0};

date[0] = new DateTime (2015, 10, 1, 23,59,59);
date[1] = new DateTime(2015, 10, 2, 23, 59, 59);

for (int i = 0; i < date.Length;i++ )

{


Console.WriteLine(" {0:MMMM dd (ddd) HH:mm} температура була рівна ---- {1:00.0} °C", date[i] , temp[i]);

}
}
}
}

Vitalia 01 окт 2015 21:17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
DateTime[] date = new DateTime [2];
double[] temp = new double[2] {14.5,17.0};

date[0] = new DateTime (2015, 10, 1, 23,59,59);
date[1] = new DateTime(2015, 10, 2, 23, 59, 59);

for (int i = 0; i < date.Length;i++ )

{


Console.WriteLine(" {0:MMMM dd (ddd) HH:mm} температура була рівна ---- {1:00.0} °C", date[i] , temp[i]);

}
}
}
}

Vitalia 01 окт 2015 21:17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
DateTime[] date = new DateTime [2];
double[] temp = new double[2] {14.5,17.0};

date[0] = new DateTime (2015, 10, 1, 23,59,59);
date[1] = new DateTime(2015, 10, 2, 23, 59, 59);

for (int i = 0; i < date.Length;i++ )

{


Console.WriteLine(" {0:MMMM dd (ddd) HH:mm} температура була рівна ---- {1:00.0} °C", date[i] , temp[i]);

}
}
}
}

Mercurial 29 сен 2015 14:47
static void Main(string[] args)
{
DateTime[] date = new DateTime[3];
double[] t = new double[3];
int i = 0;
date[0] = new DateTime(2015, 12, 25, 23, 00, 00);
date[1] = new DateTime(2015, 12, 25, 23, 30, 00);
date[2] = new DateTime(2015, 12, 26, 00, 00, 00);

t[0] = 25.8;
t[1] = 27.3;
t[2] = 29.0;

foreach (DateTime inc in date)
{
Console.WriteLine(string.Format("{0:MMM dd (ddd) HH:mm} > {1:n1} °C", inc, t[i]));
i++;
}
Console.ReadKey();
}



Вадим 11 авг 2015 17:53
Сорри лишнего запостил, тащемто воть:


DateTime[] dateTime = new DateTime[3];
dateTime[0] = new DateTime(2015, 6, 30, 09, 31, 0);
dateTime[1] = new DateTime(2015, 6, 30, 10, 31, 0);
dateTime[2] = new DateTime(2015, 6, 30, 11, 31, 0);

float[] temperature = new float[3];
temperature[0] = 26.3F;
temperature[1] = 27.1F;
temperature[2] = 30.0F;

for (int i = 0; i < dateTime.Length; i++)
{
string str = String.Format("{0:MMM dd (ddd) HH:mm} > {1:n1} °C", dateTime[i], temperature[i]);
str = str.Substring(0, 1).ToUpper() + str.Remove(0,1);
Console.WriteLine(str);
}

TR 02 июн 2015 11:02
В примере - ошибка:
string formattedString = string.Format(new System.Globalization.CultureInfo("en-US"), "{0:dddd} Money - {1:c}", DateTime.Now, 15);
Console.WriteLine("{0:dddd} Money - {1:c}", DateTime.Now, 15); // "понедельник Money - 15,00 руб."

После указания CultureInfo("en-US") рубли пока не появятся. Шойгу еще только прогревает танки...

Александр_Бугай 22 май 2015 14:56
Если так?
static void Main(string[] args)
{
double []tempArray = new double[5];
string[] date = new string[5];
string datenow = DateTime.Now.ToString("MMM dd (ddd) HH:mm");
date[0] = datenow;
string newDate;
string newMinute;
int minute = Convert.ToInt32(datenow.Substring(15, 2));
newDate = date[0].Remove(15, 2);
for (int i = 0; i < 5; i++)
{
minute = minute + 1;
newMinute = Convert.ToString(minute);
date[i] = newDate + newMinute;
Console.WriteLine(date[i]);
}
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Input the " + i+1 + "temperature");
tempArray[i] = Convert.ToDouble(Console.ReadLine());
}
for (int i = 0; i < 5; i++)
{
Console.WriteLine(date[i] + " > " + tempArray[i] + " C");
}
Console.ReadLine();
}
}

Inna 18 мар 2015 18:10
Ошиблась строчкой:
Console.Write(dt.ToString("dd MMM (ddd) HH:mm"));
вместо:
Console.Write(dt.ToString("dd MMM (dd) HH:mm"));

Inna 18 мар 2015 17:55
class Program
{
static void Main(string[] args)
{
string[] Data = new string[10];
double[] Temperature = { 5.6, 25, 10.2, 25, 23.6, 5, 25.6, 12, 15.4, 10.2 };
DateTime dt = DateTime.Now;
for (int i = 0; i < Data.Length; i++)
{
Console.Write(dt.ToString("dd MMM (dd) HH:mm"));
Console.WriteLine(" => {0,4:0.0} °C", Temperature[i]);
dt = dt.AddHours(1);
}
Console.ReadKey();
}
}

AlexWolf 28 фев 2015 00:15
Максим
---
Спасибо. Понял. Буду пробовать.

Oper
---
Понятно. Значит не стоит заморачиваться по этому поводу. Спасибо за отзыв. )

Oper 27 фев 2015 22:36
AlexWolf
---
Я в своем любительском проекте, крайне приближенном к этому ДЗ занимался построением графика температуры за определенный период, кратко говоря мне нужно было из БД выбрать дату и температуру и передать данные джаваскрипту для отрисовки. Я в цикле выбранную дату и температуру складывал в массив формата [дата, температура] и кучу таких массивов вкладывал в массив, получался огромный массив маленьких массивов, потом это конвертировал в json и передавал джаваскрипту.
Всё это дело у меня крутится на RaspberyPi, где ресурсы крайне ограничены (1 ядро 700 MГц ARMv6), и могу сказать, что данная операция - ничто по сравнению с расходом ресурсов на выборку данных из sqlite.

Максим 27 фев 2015 18:51
AlexWolf
---
1. Предпочтительно использовать массивы для того, для чего они предназначенные, и не пытаться изворотиться и разбить многомерные данные на несколько одномерных массивов. Если вас интересует скорость и производительность, вам стоит копнуть в сторону структур данных, массив - это всего лишь один из представителей. Деревья, связные списки, и другое.
2. Cтроку нужно конвертить в DateTime, чтобы форматироваь дату.

AlexWolf 27 фев 2015 17:49
Все сделал следуя строго условиям задачи. Но мне кажется было бы интереснее, если использовать не массив дат и времени а тип DataTime.
И как всегда пара вопросов :)
1 - Что по ресурсоемкости и скорости выполнения наиболее предпочтительно, много одномерных массивов или несколько многомерных?
2 - Если указать в аргументах дату (например 12.03.2015) вручную, как тип string. Как ее форматнуть, чтобы он поменял номер месяца 03 на его название МАРТ? Или он не сможет распознать дату?

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double[] temp = new double[] { 20, 22.5, 21.3, 19.3, 17.8, 18.3, 19, 21.2 };
string[] data = new string[] { "Июнь 15 (Ср) 00:00", "Июнь 15 (Ср) 06:00", "Июнь 15 (Ср) 12:00", "Июнь 15 (Ср) 18:00", "Июнь 16 (Чт) 00:00", "Июнь 16 (Чт) 06:00", "Июнь 16 (Чт) 12:00", "Июнь 16 (Чт) 18:00" };
for (int i = 0; i < 8; i++)
{
Console.WriteLine("{0:-10} > {1:00.0 °C}", data[i], temp[i]);
}
Console.ReadKey();
}
}
}

Oper 27 фев 2015 17:13
Согласно ТЗ:
using System;

namespace L28
{
class Program
{
static void Main(string[] args)
{
string[] datesArr = { "30.06.2014 09:31", "30.06.2014 10:31", "30.06.2014 11:31", "30.06.2014 12:31", "30.06.2014 13:31", "31.12.2014 08:17" };
float[] temperaturesArr = { 26.3f, 27.1f, 30f, 24.7f, 25f, -7.291f };

for (int i = 0; i < datesArr.Length; i++)
Console.WriteLine("{0:MMM dd (ddd) HH:mm} > {1:f1} °C", DateTime.Parse(datesArr[i]), temperaturesArr[i]);
Console.ReadKey();
}
}
}

Виталий 24 фев 2015 16:10
Сделал! Оказывается неправильно форматнул в Console.WriteLine():

class Program
{
static void Main(string[] args)
{

string[] time = new string[4] { "25.02.2015 12:00", "25.02.2015 13:00", "25.02.2015 14:00", "25.02.2015 15:00" };
string[] weather = new string[4] { " + 5", " + 1", " - 3", " - 5"};
for (int i = 0; i < 4; i++)
{
string.Format("<MMM dd (ddd) H:mm>", time[i]);
string.Format("<0#.0>", weather[i]);
Console.WriteLine(time[i] + weather[i]);
Console.ReadKey();
}
}
}

Виталий 24 фев 2015 12:58
В последнее время очень много ошибок. И, конечно же, это очередная. Вопрос как и прежде: где ошибка?

class Program
{
static void Main(string[] args)
{

string[] time = new string[4] { "25.02.2015 12:00", "25.02.2015 13:00", "25.02.2015 14:00", "25.02.2015 15:00" };
string[] weather = new string[4] { "+ 5", "+1", "- 3", "- 5"};
for (int i = 0; i < 3; i++)
{
Console.WriteLine("MMM dd (ddd) H:mm" , time[i] + "00.0", weather[i]);
Console.ReadKey();
}
}
}

Lev 29 дек 2014 18:49
double[] tem = new double[] {26.3, 27.1, 30, 24.7, 25};
string d = DateTime.Now.ToString("MMM dd (ddd) H:mm");
List<DateTime> dates = new List<DateTime>();
dates.Add(DateTime.Now);
dates.Add(DateTime.Now.AddHours(2));
dates.Add(DateTime.Now.AddHours(4));
dates.Add(DateTime.Now.AddHours(6));
dates.Add(DateTime.Now.AddHours(8));
int i = 0;
while (i < dates.Count)
{
Console.WriteLine("{0} > {1} °C", dates[i].ToString("MMM dd (ddd) H:mm"), tem[i]);
i++;
}
Console.ReadKey();

Максим 29 дек 2014 13:27
pinguin-linuxoid
---
Да, вы правы, исправил

pinguin-linuxoid 28 дек 2014 17:34
Уважаемый Админ - мне показалось что по контексту наоборот - при отрицательной ширине - пробелы с права а при положительной - с лева. Я могу ошибатся.

Диманиак 05 дек 2014 13:56
только название месяца не с большой буквы

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] dtime = new string[8] { "05.12.2014 0:00", "05.12.2014 3:00", "05.12.2014 6:00", "05.12.2014 9:00", "05.12.2014 12:00" , "05.12.2014 15:00", "05.12.2014 18:00", "05.12.2014 19:00"};
double[] temp = new double[8] { -3.2, -1.1, -0.8, 0, 1.3, -2.3, -4.2, -5.9 };
for (int i = 0; i < dtime.Length; i++)
{
Console.WriteLine("{0:MMM dd (ddd) HH:mm} > {1,6:f}", DateTime.Parse(dtime.ElementAt(i)), temp.ElementAt(i));
}
Console.ReadKey();
}
}
}

beronny 11 ноя 2014 23:46
Всё, проблема решена! Просто сразу написал как должно вывести, а потом в каком формате, вот:

int a = Convert.ToInt32(textBox1.Text);
double b = 0.333333333333334;
double c = Math.Pow(a,b);
label3.Text = "= " + c;
label3.Text = string.Format("{0:#.####}", c);
label3.ForeColor = Color.Red;

beronny 11 ноя 2014 23:42
Не, тогда получается тоже самое... Этими двумя присваиваниями и имел ввиду что выводить в таком формате, но после "=" .

Максим 10 ноя 2014 19:25
beronny
---
А что это за два последоватильных присваивания?

label3.Text = string.Format("{0:#.#}", c);
label3.Text = "= " + c;

Сначала Вы записали в label формативарованный текст, а дальше заменили его на "= " + c. Может Вы хотели добавить эту часть к формативарованному тексту так:
label3.Text += "= " + c;


beronny 10 ноя 2014 00:02
Админ, хэлп!)))
как сделать нужный формат, вроде написал как нужно, а выдаёт кучу нулей после запятой!

int a = Convert.ToInt32(textBox1.Text);
double b = 0.333333333333334;
double c = Math.Pow(a,b);
label3.Text = string.Format("{0:#.#}", c);
label3.Text = "= " + c;
label3.ForeColor = Color.Red;

Максим 02 окт 2014 14:43
Firik
---
Ну да, на место 0 подставляется DateTime.Now.AddHours(i), на место 1 - Temp[i]

Firik 02 окт 2014 12:46
указывается номер аргумента?

Firik 02 окт 2014 12:37
почему тут единица? {1:00.0}

Максим 04 июл 2014 15:05
cooleo
---
Да, отлично

cooleo 04 июл 2014 11:18
Может так?

double[] Temp = new double[] { 26.3, 27.1, 30, 24.7, 25 };
for (int i = 0; i < Temp.Length; i++)
{
Console.WriteLine("{0:MMM dd (ddd) hh:mm} > {1:00.0}",DateTime.Now.AddHours(i), Temp[i]);
}
Console.ReadKey();


Добавить комментарий:

Имя (обязат.)
E-mail (обязат., не публикуется)


Для вставки ваших программ пользуйтесь кнопкой "исходный код"
Вёрстка сайта с нуля

Уникальный Видеокурс!

"Научись верстать сайты и заработай на этом!"

Получить видеокурс

Подпишись на курс по программированию, и узнавай первым о новых уроках!

RSS подписка Страничка Вконтакте Мы в Twitter

Ошибка в тексте? Выделите ее мышкой и нажмите Ctrl+Enter
Поблагодарить автора: Номер карты (ПриватБанк)
5168 7572 4170 8660
WebMoney
R372544961915 U685637142028 Z999792764387
Наверх
Система Orphus