Ресторан(16)

  • 15
  • Недоступна
Реализуем первый пункт статистики - какую сумму заработали на рекламе, сгруппировать по дням. 1. В классе VideoSelectedEventDataRow создай геттер для поля amount. В классе CookedOrderEventDataRow создай геттер для поля cookName. 2. В StatisticManager создай метод (придумать самостоятельно), которы
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (86)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Даниил31 уровень
понедельник, 21:42
Решил с 7-й попытки, был 1284-м. 5 попыток ушло в молоко только потому что по привычке пытался уговаривать валидатор так как он писал как обычно всякую ересь мол "проверь что сумма прибыли выводится через точку, а не запятую" хотя я как бы могу отличить точку от запятой и это я не упустил из внимания. Валидатор не принимал крайних 2 пункта (совет давал по предкрайнему пункту). В итоге оказалось что просто у меня не до конца корректно отрабатывал метод из пункта 4 условий. В итоге потратил ещё несколько часов что бы мой варенный мозг смог понять как сделать правильно. Когда всё протестил, то сразу всё приняло. Дам советы к решению: - везде использовал TreeMap, а там где нужно делал его сортировку в обратном порядке (метод из Collections, где применить найдёте ниже или в поисковике); - необходимый формат даты "dd-MMM-yyyy"; - кто использует дату как ключ в Map, то стоит учитывать что два одинаковых new Date() вызваных отдельно не равны друг к другу, по этому нужно округлять/обнулять значения с точностью до дня месяца; - вывод суммы в итоге переделал на всякий случай как просит валидатор сделав из long разные строчки через substring (для целых у.е. и копеек) и между ними ставил запятую. Таким способом не теряется точность как при использовании double (нашёл случай в своём коде при тесте когда выводило аж до 5 знака после запятой непонятно откуда взявшиеся цифры); - после строки Total - 987.26 пустой строки нет, сразу идёт вывод следующего метода; - имена поваров в алфавитном порядке, не забывать про одну пустую строку перед следующей датой для вывода, даты в обратном порядке, округлять минуты в большую сторону. Ах да - не забыть перевести секунды в минуты; - ну и вообще внимательно читать что от вас просят в условиях.
Даниил31 уровень
понедельник, 21:48
Для тестирования прямо в мэйне создавал заглушки CookedOrderEventDataRow и VideoSelectedEventDataRow для которых делал ещё один конструктор с дополнительным параметром Date что бы сразу создавать нужные значения. Ну и регистрировать эти заглушки там же в мэйне через StatisticManager
Борис32 уровень, Санкт-Петербург
понедельник, 14:18
Долго тупил из-за суммы в копейках и рублях
Arkadii31 уровень
10 июня, 19:15
Как ни странно эта задача далась мне легко. Из очевидных минусов, не очень удобно проверять результат. Ну и никак не получается у меня освоить stream api и код уж больно громоздкий и плохо читаемый.
Сергей41 уровень, Саратов
5 июня, 13:41
Тут очень удобно использовать класс java.time.LocalDate. Он хранит только календарную дату без значения времени суток. Конвертируется из java.util.Date следующим образом:
public LocalDate convertToLocalDate(Date dateToConvert) {
    return dateToConvert.toInstant()
      .atZone(ZoneId.systemDefault())
      .toLocalDate();
}
и обратно:
public Date convertToDate(LocalDate dateToConvert) {
    return Date.from(dateToConvert.atStartOfDay()
      .atZone(ZoneId.systemDefault())
      .toInstant());
}
материал отсюда
Володимир Штаба31 уровень, Киев
2 июня, 18:57
Вообщем с 15 раза и то не без помощи Оleg Martynov . Попросил у него код классов и скопипастил . На что мне валидатор выдал тоже самое . Вообщем в моем случаи подвело решение в классе AdvertisementManager там я не учел тот момент чтоб запретить попадать в список воспроизведения тем видеороликам у которых hits<=0 для этого в класс Advertisement добавил гетер для соответствующего поля .
Oleg Martynov31 уровень, Санкт-Петербург
2 июня, 17:18
Неплохо было бы дать к задаче mock-данных для теста.
Володимир Штаба31 уровень, Киев
2 июня, 17:56
ты решил ?
Sasha Dmitrieva31 уровень, Москва
28 мая, 19:08
Треклятые методы были написаны мною правильно с самого начала, но формат вывода удалось подогнать под валидатор только с 5 попытки.
Андрей37 уровень
24 мая, 11:18
Какого х... Все работало, но не принимало решение, пока не исправил метод processVideos. А почему его тогда валидатор принял раньше?
Georgy Efimenko40 уровень, Владивосток
13 мая, 00:29
Задача не сложная да, НО!!! я обычно делаю часть, потом тестирую валиком , и если ок все , то дальше дописываю условие. Тут я упоролся на то, что п.3 не работает, пока п. 4 не сделаешь. Из за этого много времени потратил.
Дмитрий35 уровень
15 апреля, 09:14
Задача не сложная, сделал с 5ой попытки и то по невнимательности.