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

    +76

    1. 1
    2. 2
    3. 3
    4. 4
    // date - java.util.Date
    SimpleDateFormat formatY = new SimpleDateFormat('yyyy')
    SimpleDateFormat format = new SimpleDateFormat('dd.MM.yyyy')
    Date dateFrom = format.parse('01.01.' + (Integer.valueOf(formatY.format(date)) - 3))

    Вот как надо вычитать 3 года от даты

    Запостил: smpl, 20 Августа 2013

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

    • Calendar не не слышал
      Ответить
      • >Calendar
        Да он тоже неудобный. С датами в стандартной либе всё уныло.
        DateTime threeYearsBack = dt.plusYears(-3);
        Ответить
    • DateUtils.addYears(date, -3);
      Ответить
    • new Date((int)date.getTime()-1000*60*60*24*30.5*12)
      Ответить
      • > 30.5*12
        Почему не просто 365 или 366?
        Ответить
        • так последовательность нарушена )
          Ответить
          • 1000*60*60*24*(30*4+31*7+28+0.25-0.01+0.025)*12
            Ответить
            • боже упаси такие вычисления видеть в коде
              Ответить
              • > боже упаси такие вычисления видеть в коде
                Да, 378706752000 более магическое и интригующее:)
                Ответить
    • > вычитать 3 года от даты
      А с 29 февраля что делать? :)
      Ответить

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