[C#] Домашно Strings and Text Processing - 17 задача


11

Условие: Write a program that reads a date and time given in the format: day.month.year hour:minute:second and prints the date and time after 6 hours and 30 minutes (in the same format) along with the day of week in Bulgarian.

Решениеsource.

Обяснение: Отново използваме DateTime.Parse(). Прибавяме 6 часа и 30 минути. След това използваме ToString() метода, като му зададем българска култура и форматиращ низ само за деня.




Отговори



4
AddHours() методът приема double стойности, така че би могъл да си спестиш извикването на AddMinutes() - от чисто естетическа гледна точка, много по-лесно е да разбереш AddHours(6.5), отколкото AddHours(6).AddMinutes(30), а и няма да алокираш излишно 1 DateTime обект.

от gugulete (110 точки)


0
Благодаря за съвета, ще го променя.

от jasssonpet (6814 точки)

0
Искам само да добавя, че в момента не добавя часовете. Трябва да бъде date = date.AddHours(6.5); за да се увеличат :)

от p.penchev (204 точки)


3

В този полезен линк има информация за форматирането на датите.

В решението на jasssonpet например се ползва "dddd", над което се чудих известно време, докато открих, че това всъщност връща пълното име на деня от седмицата.

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx




2

Клик

чета я с parse този път, и към нея добавям 6 ч и 30 мин в секунди за да не се създават 2 допълнителни структури (ако бях добавил 6 часа, а после 30 мин). 


от Rokata (397 точки)


0
а можеше просто да добавиш 6 часа и половина - AddHours(6.5) ;)
промени форматирането на d.M.yyyy, тъй като d.MM.yyyy очаква месецът да е написан с водещи нули, а това го няма в условието на задачата. Също така денят от седмицата трябва да е изписан на Български.

от pdrenovska (2196 точки)

0
кой да се сети :D

от Rokata (397 точки)


0

Здравейте,

Някой има ли представа защо ми изписва деня на английски?

Това е кода: http://pastebin.com/j9hdAtMy

Благодаря


от vphilipov (3591 точки)


0
по този начин се указва да се използва текущата култура за изписване на деня от седмицата
чрез форматния спецификатор "dddd"
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("bg-BG"); Console.WriteLine(date + date.ToString("dddd"));
Доколкото разбрах, ако не го укажеш изрично, се използва по подразбиране, културата на твоя Windows

от pdrenovska (2196 точки)

0
Трябва да си настроиш Windowsa от Regions and Lenguages. Виж в лекцията за Стринговете на Наков той точно за това обясни там.

от xellscream (469 точки)



0
просто и семпло.
http://pastebin.com/9JWMcRJD



1

Решение: source

Отново с DateTime.ParseExact() указвам формата за въвеждане. Добавям 6 часа и половина и извеждам в указания формат и зададена култура bg-BG. За да се види правилно на конзолата кирилицата, променяме кодировката на конзолата в формат UTF8 и сменяме шрифта на конзолата с някой, който поддържа кирилица.


от stanchev (197 точки)


6

Решение

Въвеждам си дата и час и с помощта на .AddHours(6.5) си добавям нужните 6.5 часа.


от teleriknetwork (2734 точки)


0
Моят комп БГинфо не изкарва и това е, наложи се да го правя с два масива единия с дните на английски, другия на български. Получиха се нещата. :)
http://pastebin.com/QyyehTEm

от hudsonvsm (25 точки)