1. Си / Говнокод #17802

    +138

    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
    void print_tetral(int i){
        switch(i){
        case 1:
            printf("      January                February                March\n");
            printf("Mo Tu We Th Fr Sa Su   Mo Tu We Th Fr Sa Su   Mo Tu We Th Fr Sa Su\n");
            break;
        case 2:
            printf("       April                   May                    June\n");
            printf("Mo Tu We Th Fr Sa Su   Mo Tu We Th Fr Sa Su   Mo Tu We Th Fr Sa Su\n");
            break;
        case 3:
            printf("        July                  August               September\n");
            printf("Mo Tu We Th Fr Sa Su   Mo Tu We Th Fr Sa Su   Mo Tu We Th Fr Sa Su\n");
            break;
        case 4:
            printf("      October                 November               December\n");
            printf("Mo Tu We Th Fr Sa Su   Mo Tu We Th Fr Sa Su   Mo Tu We Th Fr Sa Su\n");
            break;
        default:
            break;
        }
    }

    Запостил: alobanov, 16 Марта 2015

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

    • Июль, Сентябрь уплыли
      а в чем говнокод?
      Ответить
      • Ответить
        • ну ок, строчку с шапочкой дней недели можно один раз напечатать
          только ничего не наэкономишь таким образом
          Ответить
          • > ничего не наэкономишь таким образом
            Время разработки? Мне было бы влом такую табличку руками писать... А потом заказчику еще и на русском захочется...

            P.S. ((day_width * 7 + day_spacing * 6) - strlen(month))/2 спасёт создателя календарей от рабского труда.
            Ответить
            • я бы не стал мудрить с вычислениями
              строковый литерал он очень хорошо заметен и понятен
              я не зная, что и зачем делает код, даже не напрягался - и так всё видно
              а если тут формулы употреблять, буферы выделять, или на стеке - да строк кода больше выйдет

              время разработки точно не наэкономишь с вычислениями, контрол цэ контрол вэ, пробелами отбил, в сегмент константных данных результат положил, минуту на всё потратил - ещё и работать будет быстрее

              > на русском
              потратил ещё минуту, получил два варианта литералов, написал i18n код, который будет выбирать правильный литерал
              имхо совсем не то место, где надо голову включать
              Ответить
              • Вот бывает такое пограничное состояние: код простой, но с запахом копипасты. И думаешь - можно ж убрать дубли и сократить, но в итоге получается усложнение. В том числе при последующем чтении кода другим разработчиком или самим собой через N месяцев. Хотя и не всегда.
                Ответить
    • Нашёл в коде зашифрованное японское имя: Sasumotu
      Ответить
      • Это двуличных бог бурных выходных и тяжелых отходняков
        Ответить
      • > Sasumotu
        Sasumotsu?
        Ответить
        • Какое-то обидное имя получается. http://jisho.org/kanji?rt=jap&reading=%E3%82%82%E3%81%A4& mt=en&meaning=&ct=strokes&code=&jy_only= on
          Последний не считается; он там лишь из-за несовершенства поиска
          Ответить
    • Познакомьте уже парня с time.h
      Ответить
      • > Познакомьте уже парня с time.h
        $ man cal
        $ cal 2015
                                    2015
               Январь               Февраль                 Март          
        Вс Пн Вт Ср Чт Пт Сб  Вс Пн Вт Ср Чт Пт Сб  Вс Пн Вт Ср Чт Пт Сб  
                     1  2  3   1  2  3  4  5  6  7   1  2  3  4  5  6  7  
         4  5  6  7  8  9 10   8  9 10 11 12 13 14   8  9 10 11 12 13 14  
        11 12 13 14 15 16 17  15 16 17 18 19 20 21  15 16 17 18 19 20 21  
        18 19 20 21 22 23 24  22 23 24 25 26 27 28  22 23 24 25 26 27 28  
        25 26 27 28 29 30 31                        29 30 31              
        ...
        Ответить
        • what kind of sorcery is this?
          Ответить
          • It's *nix.
            Ответить
          • The output of the cal command is supposed to be bit for bit compatible to the original Unix cal command, because its output is processed by other programs like CGI scripts, that should not be broken.
            Ответить
        • неделя начинается с воскресенья, но при этом weekend - это суббота + воскресенье.
          Ответить
          • Вот этот календарик правильней, т.к. в нём не стали делать совместимость со всяким cal'ом...
            $ ncal 2015
                                              2015
                Январь            Февраль           Март              Апрель            
            Пн     5 12 19 26        2  9 16 23        2  9 16 23 30     6 13 20 27   
            Вт     6 13 20 27        3 10 17 24        3 10 17 24 31     7 14 21 28   
            Ср     7 14 21 28        4 11 18 25        4 11 18 25     1  8 15 22 29   
            Чт  1  8 15 22 29        5 12 19 26        5 12 19 26     2  9 16 23 30   
            Пт  2  9 16 23 30        6 13 20 27        6 13 20 27     3 10 17 24      
            Сб  3 10 17 24 31        7 14 21 28        7 14 21 28     4 11 18 25      
            Вс  4 11 18 25        1  8 15 22        1  8 15 22 29     5 12 19 26
            Ответить
            • видимо ncal юзает региональные настройки
              Ответить
              • Да cal тоже юзает - текстовки же русские. Только, я так понимаю, у него воскресенье всегда первым, чтобы говноскрипты не парились.
                Ответить
                • Хорошее именование. Не зря в любом календаре есть префикс cal, ох не зря.
                  Ответить
            • >правильней
              транспонированней к тому же
              Ответить
              • Надо ОП'у предложить в таком формате вывести. Будет немного веселее.
                Ответить
                • Уже чувствую его жжение в заднице
                  Ответить
                  • > жжение в заднице
                    Календари - это всегда весело. Одно время в кедах не было февраля. Вообще не было. Вперёд крутишь - после января сразу март. Назад крутишь - после марта сразу краш плазмы.
                    Ответить

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