1. Список говнокодов пользователя vovochka

    Всего: 3

  2. Си / Говнокод #23405

    +1

    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
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    int
    next_day( int mmdd )
    {
       struct tm time;
       time_t clock;
       int date;
       int secs_in_day = 60 * 60 * 24;
    
       /* convert date to mmdd if in yyyymmdd format */
       if (mmdd > 9999)
          mmdd = mmdd % 10000;
    
       /* Get today's date/time in seconds since 1970 */
       clock = time( NULL );
    
       /* Loop until we obtain a clock time corresponding to the day passed in */
       while ( 1 )
       {
          /* Get structure with filled in date/time info. for day corresponding to
           * the clock value we're currently working on & construct date from that.
           */
          localtime( &clock, &time );
          date =  (tm->tm_mon + 1) * 100 + tm->tm_mday;
          if ( date > mmdd )
          {
             /* Set clock back to previous day */
             clock -= secs_in_day;
             continue;
          }
    
          /* Set clock forward to next day */
          clock += secs_in_day;
          if ( date < mmdd )     /* Date is in future */
             continue;
    
          tm = localtime( &clock );
          date =  (tm->tm_mon + 1) * 100 + tm->tm_mday;
          return date;     /* Next date after one passed in */
       }
    }

    Функция, получает день в виде числа в формате mmdd, возвращает следующий день в текущем году в таком же формате.

    vovochka, 13 Октября 2017

    Комментарии (0)
  3. Си / Говнокод #3751

    +136

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    recordSize=logicalRecordLength;
    BytesToRead=cnt*recordSize;
    records=cnt;
    while ( ((pos + BytesToRead)>dataSize)&&records )
    {
        BytesToRead = --records * recordSize;
    }

    Не думал, что у нас в коде встречу нечто явно похожее на пример №2 из статьи "Индусский код" на Луркморе.
    Ну и стоит добавить, что реально logicalRecordLength всегда равен 1.

    vovochka, 21 Июля 2010

    Комментарии (10)
  4. Си / Говнокод #3599

    +142

    1. 1
    enum {size = 10, timeout = 50};

    vovochka, 30 Июня 2010

    Комментарии (142)