1. PHP / Говнокод #18194

    +163

    1. 1
    $age = floor( (strtotime(date('Ymd')) - strtotime($date)) / 31556926);

    31556926 / 365 / 24 / 60 / 60 ~ 1

    Запостил: crook, 18 Мая 2015

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

    • Мопед не мой :)
      Ответить
    • Зато пирфоманс. Нам же не нужно определять возраст с точностью до дня.
      Ответить
    • T                                   = 31556926
      T1 = 365*24*60*60                   = 31536000, |T1-T| = 20926
      T2 = (365+1/4)*24*60*60             = 31557600, |T2-T| =   674
      T3 = (365+1/4-1/100)*24*60*60       = 31556736, |T3-T| =   190
      T4 = (365+1/4-1/100+1/400)*24*60*60 = 31556952, |T4-T| =    26

      Кто придумает, откуда можно взять ещё 26 секунд или найдёт ошибку в моих рассуждениях?
      Ответить
      • P.S. Определение, принятое совместно Международным союзом теоретической и прикладной химии и Международным союзом геологических наук, рекомендует для употребления annus (сокращение a) для года, определённого как тропический год в 2000 году:[14][15]
        a = 365.24219265 дней = 31556925.445 секунд

        https://ru.wikipedia.org/wiki/Год

        T5 = 31556925.445, |T-T5| = 0.555
        Ответить
        • 365.24219265

          Мне это напоминает чей-то ник.
          Ответить
        • Кстати, округление константы в большую сторону в данном ГК имеет обоснование: это сделано умышленно, чтобы никого не состарить, ведь праздновать день рождения заранее — плохая примета.
          Ответить
      • T5 = (365+1/4-1/100+1/400)*24*60*60 + 26 /* magic! dont touch */ = 31556926, |T5-T| = 0
        Ответить
      • 31556926 / 24 / 60 / 60 = 365.2421990740741

        забиваем это в гугл, и имеем https://answers.yahoo.com/question/index?qid=20100131155714AAgtJGw

        "1 year = 365.242199 days. how did they figure out that decimal to so many places?"
        Ответить
    • > $age

      Прочитала как Sage
      Ответить

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