1. C++ / Говнокод #1301

    +1001.3

    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, 01 Июля 2009

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

    • показать все, что скрытоидея ничего, только у слипа д.б. миллисекунды. Или это и подразумевалось под говнокодовостью?
      Ответить
    • говно потому что в день перевода на зимнее время будут ошибки
      Ответить
    • Капитан Очевидность:
      Баяниссимо!!!
      Ответить
    • temple:
      Секунды-то секундами. Это не виндовый Sleep... Но идея - супер! Поспи, утро вечера муднее...:)))
      Ответить
    • страйкер:
      [url]http://govnokod.ru/411[/url]
      [url]http://govnokod.ru/925[/url]
      Ответить
    • 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]
      Да ладно!:)))))
      Ответить
    • Звездочёт:
      Да, боян ещё тот, но улыбнуло)))
      Ответить
    • Мрахахахафрахахаха!
      Ответить
    • codeismy.name:
      киздец...
      орали всем офисом
      Ответить
    • ухаха!! улыбнуло, хорошо не следующую неделю вычисляли :D
      Ответить
    • Когда наступит завтра оно уже сегодня станет и код выдаст неправильный результат!
      Читайте Льюиса Керолла - "...варенье на завтра..."!
      Ответить
      • Точно. Как я сразу не заметил... Нужно так:
        void get_tomorrow_date( struct timeval *date )
        {
        sleep( INFINITY );
        }
        Тогда не придёться врать...
        Ответить
      • А вот эта функция не врёт:
        void get_yesterday_date( struct timeval *date )
        {
        gettimeofday( date, 0 );
        sleep( 86400 );
        }
        :)
        Ответить
    • chrl: Мне кажется, эта функция будет слегка подтормаживать...можно оптимизировать...
      Ответить
    • XD
      Ответить
    • Ыыы
      Ответить

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