Beer Time-Parsing String to Timestaple

tasks

#1

Здравейте,
от няколко часа се ровя и не мога да се справя да разбера как трябва да стане целият процес. Задачата ми е да прочета стринг от конзолата (“10:30 АМ”) и да проверя дали този стринг влиза в определен интервал от часове,но дори не мога да се справя да парсна стринга към дата формат.Прочетох множество страници в гугъл,пробвах със SimpleDateFormat ( това,което аз пиша е “hh:mm a”,но ми дава грешка-unable to parse date.Всякакъв вид помощ ще ми бъде полезна,благодаря ви.


#2

Здравей,

А не можеш ли да пробваш нещо по-просто, например да разгледаш деня като 0 - 1440 мин (24*60мин)
и така 10 - 10:30 АМ би било интервал от минути [600 - 630]
Така ще се получи ли логиката, която ти трябва?

Успех!


#3

Здравей,
за съжаление не става така,защото няма как да обърна входа 10;30АМ в число,което да ползвам. Със сигурност има вариант да се парсне в някаква величина като Date или Тime,но при мен не се получава.


#4

Здравей Антонио,

една забележка - ако patter-ън, който си задал е “hh:mm a”, при вход “4:30 AM” (вместо 04:30 АМ) програмата ти ще хвърли грешка. Затова можеш да промениш pattern-ън на “h:mm a”.

Успех,
Тодор :slight_smile:


#5

Здравейте,
явно аз не правя нещо както трябва,но все още не мога да извърша парсването. В момента пробвам с произволен стринг(“10:30 АМ”) и както и да се опитвам не става. Бихте ли ми казали защо получавам грешка?
image .При този код получавам грешка “Text “10:30 AM” could not be barsed at index 6”.
Извинявам се за безпокойствието и благодаря за разбирането.


#6

Най-вероятно “АМ” е написано на кирилица. Въпреки че за нас двете изглеждат еднакво, за компютъра са различни. :slight_smile:


#7

Здравей,

Можеш да се възползваш от константния вход, а именно, че знаеш откъде докъде са ти часовете, минутите и AM/PM в String-а. Според мен това води до по-лесно решение на задачата, без pattern-и.

Успех! :four_leaf_clover:


#8

Здравей,
благодаря ти много за съвета,нещата се получиха.


#9

… или просто добавяш един IF, ако e PM да добавя 12 към променливата за час :wink: