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

    +71

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    private String getSecondsToTimeFormat(long startTime, long finishTime) {
    
            int secs = Math.round((finishTime - startTime) / 1000);
    
            int hours = secs / 3600,
                    remainder = secs % 3600,
                    minutes = remainder / 60,
                    seconds = remainder % 60;
    
            StringBuilder result = new StringBuilder();
    
            if (hours > 0) {
                result.append((hours < 10 ? "0" : "") + hours).append(":");
            }
    
            if (minutes > 0 || hours > 0) {
                result.append((minutes < 10 ? "0" : "") + minutes).append(":");
            }
    
            if (seconds > 0 || hours > 0 || minutes > 0) {
                result.append((seconds < 10 ? "0" : "") + seconds);
            }
    
            if (hours == 0 && minutes == 0) {
                if (seconds == 1) {
                    result.append(" second");
                } else {
                    result.append(" seconds");
                }
            }
    
            return result.toString();
        }

    Задача - перевести из секунд в человеческий формат

    Запостил: nafania217518, 29 Января 2013

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

    • Я всегда так делаю))))
      Ответить
    • вот и для кого делалось DateFormat...
      Ответить
      • Оно неудобное и непотокобезопастное.
        Я тоже им не пользуюсь.
        Ответить
        • Вот тоже кстати - как можно было запилить непотокобезопасный SimpleDateFormat? Какого хуя он вообще не иммутабельный?

          P.S. Там из мутаторов походу только set2DigitYearStart да setDateFormatSymbols. Неужели именно из-за них он помечен как не тредсейф?
          P.P.S. А, ну еще есть пачка сеттеров, унаследованных от DateFormat и умение возвращать встроенный в формат календарь.
          P.P.P.S. Но это не отменяет вопроса: неужели нельзя было оформить это в виде билдера и иммутабельного объекта?
          Ответить
          • Use joda time, Lure!
            Ответить
            • Up-to-date Time Zone calculations. The time zone implementation is based on the public tz database, which is updated several times a year. Разве не лучше было бы брать эту инфу из системы, чем вводить еще одно место, за которым нужно следить при смене таймзон (чувствую, что на территории нашей страны их еще пару раз сменят, пока, наконец, успокоятся)?

              P.S. Хотя... сама жаба тоже не блещет: http://www.oracle.com/technetwork/java/javase/timezones-137583.html
              Ответить

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