Кресты / Говнокод #1301 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
void get_tomorrow_date( struct timeval *date )
  {
    sleep( 86400 ); // 60 * 60 * 24
    gettimeofday( date, 0 );
  }

На одном индусском форуме программистов задали вопрос: "Как вычислить завтрашнюю дату?".
Ответ был шедевральным и уже разошёлся по всему миру:

Запостил: guest guest, (Updated )

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

  • идея ничего, только у слипа д.б. миллисекунды. Или это и подразумевалось под говнокодовостью?
    Ответить
  • говно потому что в день перевода на зимнее время будут ошибки
    Ответить
  • temple:
    Секунды-то секундами. Это не виндовый Sleep... Но идея - супер! Поспи, утро вечера муднее...:)))
    Ответить
  • BlackIceDaemon:
    void get_yesterday_date( struct timeval *date )
    {
    timemachine.return_to_yesterday();
    gettimeofday( date, 0 );
    }
    Ответить
  • void get_yesterday_date( struct timeval *date )
    {
    timemachine.return_to_yesterday();
    gettimeofday( date, 0 );
    }

    Это говнокод. Нужно было так:
    void get_yesterday_date( struct timeval *date )
    {
    timemachine.return_to_yesterday();
    gettimeofday( date, 0 );
    timemachine.return_to_tomorrow();
    }
    Иначе, когда наступит завтра, то эта функция сново вызовется, тк она должна вызватся завтра в этоже время. В результате программа зависнет во временной петле.
    Ответить
  • Кстати, таким образом мы оптимизируем функцию, тк ей не придётся ждать целые сутки в функции sleep(блаблабла).
    Ответить
  • timemachine - машина времени? O_o Я хочу такой комп...
    Ответить
  • BlackIceDaemon:
    [quote]void get_yesterday_date( struct timeval *date )
    {
    timemachine.return_to_yesterday();
    gettimeofday( date, 0 );
    }

    Это говнокод...[/quote]
    Да ладно!:)))))
    Ответить
  • Звездочёт:
    Да, боян ещё тот, но улыбнуло)))
    Ответить
  • ухаха!! улыбнуло, хорошо не следующую неделю вычисляли 😀
    Ответить
  • Когда наступит завтра оно уже сегодня станет и код выдаст неправильный результат!
    Читайте Льюиса Керолла - "...варенье на завтра..."!
    Ответить
    • Точно. Как я сразу не заметил... Нужно так:
      void get_tomorrow_date( struct timeval *date )
      {
      sleep( INFINITY );
      }
      Тогда не придёться врать...
      Ответить
    • А вот эта функция не врёт:
      void get_yesterday_date( struct timeval *date )
      {
      gettimeofday( date, 0 );
      sleep( 86400 );
      }
      🙂
      Ответить
  • chrl: Мне кажется, эта функция будет слегка подтормаживать...можно оптимизировать...
    Ответить

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

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8