1. Java / Говнокод #8593

    +80

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Calendar startCal = Calendar.getInstance();
    startCal.setTime(DateUtils.truncateDateAndTimeToDateOnly(startDate));
    Date strtDt = startCal.getTime();
    
    Calendar endCal = Calendar.getInstance();
    endCal.setTime(DateUtils.truncateDateAndTimeToDateOnly(endDate));
    Date endDt = endCal.getTime();

    Далее по тексту strtDt и endDt используются ровно один раз, startCal и endCal не используются больше вообще. Утилитный метод возвращает требуемый экземпляр класса Date.

    Запостил: roman-kashitsyn, 21 Ноября 2011

    Комментарии (27) RSS

    • походу 6 строчек можно ужать в 3 (с учетом "далее по тексту") и использовать один инстанс календаря
      Ответить
      • нет, можно вообще все 6 строчек выкинуть и заинлайнить strtDt -> DateUtils.truncateDateAndTimeToDateOnly( startDate).
        Ответить
        • тьфу ты, точно, календарь тут полезного ничего не делает. спасибо )
          Ответить
        • С учётом громоздкости вызова, не грех и оставить strtDt.
          Ответить
    • Языки меняются, даты остаются..
      Ответить
      • Ещё на С++ и Scala не было.
        Ответить
      • Тут скорее не в датах дело, а в долбоебизме автора кода. Там четыреста строк сплошных лулзов.
        Ответить
        • Java Calendar API все-таки не для слабонервных =)
          Ответить
          • кстати, да. По мне, лучше .setYear(y), чем .set(.YEAR,y)
            Ответить
            • >.set(.YEAR,y)
              это как ?
              Ответить
              • Calendar сal = Calendar.getInstance();
                cal.set(Calendar.YEAR,1984);

                как-то так.
                Ответить
                • Какая мерзость этот нативный джавовский календарь.А год клацный.
                  Ответить
                  • был вполне удобный java.util.Date, но к нему доебались, что он не поддерживает интернационализацию (только по григорианскому календарю), и обьявили его почти полностью deprecated.
                    Ответить
                    • Угу. Все конструкторы хорошие подепрекейтили.
                      Но все равно joda-time лучче.
                      Ответить
                      • спасибо, не знал раньше о таком.
                        Ответить
                      • Это какие такие хорошие конструкторы? Где год - это "the year minus 1900", а месяц - "the month between 0-11"?
                        Ответить
                        • Нет. Date(String s), вернее метод parse, который он вызывает.
                          А те конструкторы больше чем на тесты не годятся.

                          И повторю свою мысль - большинство библиотечных функций и классов, что есть в жабе по дефолту - кривое неюзабельное говно.
                          Ответить
                          • а нахуя она тогда нужна?
                            Ответить
                            • Чтобы показывать как не нужно делать фреймворки.

                              Замечательная книга "Effective Java" Блоха почти целиком состоит из примеров типа: "вот мы сделали так в джаве, и это была ошибка: никогда так не делайте". Работа с датами, writeObject, открытость классов по-умолчанию и пр.

                              А еще есть книга Ousterhoutа (который TCL) "A Philosophy of Software Design" и там тоже постоянные примеры того, как джавабляди обосрались.
                              Например, он обсирает необходимость вручную каждый стрим заворачивать в буферизирующий стрим и пр
                              Ответить
                  • Если делать всё отдельными методами, пришлось бы реализовать ещё приблизительно 16*17=272 метода.
                    Ответить
        • может быть дело все-таки в дате ... рождения автора
          Ответить
    • >Calendar
      >startCal
      >endCal
      >>Cal
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • – Вот то-то и оно… – проговорила, Марго вытирая салфеткой губы, – любишь. А эта блядища этого не ценит!
      Ответить

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