Loading...
PavelManahilov avatar PavelManahilov 216 Точки

Здравей, интересно решение. Малко си поусложнил парсването, няма нужда да прибавяш и изваждаш часове, направо си парсваш "3:00 AM" и просто в if-a ще проверяваш дали въведеното време е >= от 1:00 PM или <  от 3:00 AM

Също така трябва да добавиш един try - catch , за да можеш да хванеш когато е въведено сгрешено време.

1
Al3xFx avatar Al3xFx 33 Точки

Задачата е добре, но трябва да имаш и TryParse, защото в условието пише, че ако времето не може да се парсне, т.е потребителят е подал нещо различно от DateTime, трябва да изписва “invalid time” .

1
GeorgiSotirov avatar GeorgiSotirov 16 Точки

Здравейте,

Признавам, че тази задачка я мислих малко повече. Не, че е толкова тежка, но исках да намеря правилният начин :)

Трябва да се внимава за въвеждане на неправилен формат на часа, също така трябваше да внимаваме с факта, че 1pm и 3am са в различни дни (3am е след полунощ), което мен ме спъна и реших да cheat-на малко (chuckle).

Ето това, което съм сътворил Поствам го за да събера мнения дали решението става и какво може да се промени към по-добро.

Beer Time: http://pastebin.com/ezWZ8ZZb

Благодаря предварително!

Cheers :)

1
PavelManahilov avatar PavelManahilov 216 Точки

Здравей, ако ползваш DateTime типове данни вместо Long , няма нужда да правиш проверка за полунощ, защото именно AM и PM прави тази проверка. А ако искаме да сме напълно коректни с проверката на правилния формат на въведения час ( в условието формата е “hh:mm tt” )  трябва да ползваме TryParseExact

1
GeorgiSotirov avatar GeorgiSotirov 16 Точки

Здравей, 

Благодаря за отговора :) 

Явнпроблема ми е бил в липсата на TryParseExact (). 

Аз го правех с ParseExact ();

Ако имам време ще го преработя, сега работи коректно, но ще пробвам по друг начин :) 

Cheers! 

0
miroLLL avatar miroLLL 95 Точки

Ето го и моя бирен часовник, но нещо не работи.. Гледам други решения, сравнявам и не мога да открия защо... Дайте някой друг акъл?

Ако оставя в условието на If-a само - "userAvailable >= beerTimeStart" показва правилно, но сложа ли и допълнението за край на биреното време "&& (userAvailable <= beerTimeEnd)" се чупи...

Израза като е цял, каквото и да input-a все изкарва "its not beer time yet, try later"..

Като изкарвам, стойностите на "userAvailable", "beerTimeStart" и "beerTimeEnd". Ги изкарва коректно. Не знам, изпуши ми главата от толкова чудене.

Задачката не е трудна, но нещо зацепих.

0
Filkolev avatar Filkolev 4482 Точки

А като парсваш часовете, обръщаш ли внимание на датата? В един и същи ден няма час, който да е едновременно след 13:00 и преди 3:00.

2
miroLLL avatar miroLLL 95 Точки

Да, да. Сутринта като го погледнах и като поразмишлявах малко, стана. :)

Бирен часовник /edited/

0
26/09/2015 15:38:57
Ignatovw99 avatar Ignatovw99 4 Точки

Здравейте, ето моето решение на задачата https://pastebin.com/2Ys4T5jp. Когато пусна debugger-a на ред 19, където е DateTime.ParseExact ми гърми. Дава Format Exception, но не разбирам защо. :(

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

Гърми ти защото мога да ти подам невалидни часове ти хубаво си кaзал hh:mm :tt но ако ти подам 14 pm при теб ще мине и какво правим.и datetime почва да се чуди. Казал си му че ще е от 1 до 12. И ти гърми с format exception не може да превърне стринго в валиден според това което си му задал час.А и тук е по-добре да ползваш tryparseexact така или иначе защото са ви казали че може да имаш и неправилен вход.

0
02/03/2018 09:45:45
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.