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

    +130

    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
    int days_in_month(int month, int year){
        if(month == 2){
            if(is_leap_year(year)) return 29;
            else return 28;
        }
        if(month < 8){
            if(month % 2 == 1) return 31;
            else return 30;
        }
        if(month > 7){
            if(month % 2 == 1) return 30;
            else return 31;
        }
        return 0;
    }

    Количество дней в месяце. Моя первая кучка. Не судите строго ^_^

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

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

    • Как нам интересно, как нам интересно, как нам интересно -- никак нам не интересно.
      Ответить
    • int days_in_month(int month, int year) {
        return 30 + ((month&1)^(month>7)) - ((month==2)<<!is_leap_year(year));
      }
      Ответить
      • int days_in_month(int month, int year)       {
            if(month < 1)                            {
                return 0;                            }
            else if(month > 12)                      {
                return 0;                            } 
            else if(month > 6)                       {
                if(month < 10)                       {
                    if(month > 8)                    {
                        return 30;                   } 
                    else if(month < 8)               {
                        return 31;                   } 
                    else if(month == 8)              {
                        return 31;                   } 
                    else                             {
                        return 0;                    } }
                else if(month >= 10)                 {
                    if(month > 11)                   {
                        return 31;                   }
                    else if(month < 11)              {
                        return 31;                   }
                    else if(month == 11)             {
                        return 30;                   } 
                    else                             {
                        return 0;                    } } }
        Ответить
        • /**/else if(month <= 6)                      {
                  if(month > 3)                        {
                      if(month > 5)                    {
                          return 30;                   }
                      else if(month < 5)               {
                          return 30;                   }
                      else if(month == 5)              {
                          return 31;                   }
                      else                             {
                          return 0;                    } } 
                  else if(month <= 3)                  {
                      if(month > 2)                    {
                          return 31;                   } 
                      else if(month < 2)               {
                          return 31;                   } 
                      else if(month == 2)              {
                          if(is_leap_year(year))       {
                              return 29;               } 
                          else if(!is_leap_year(year)) {
                              return 28;               } 
                          else                         {
                              return 0;                } } 
                      else                             {
                          return 0;                    } } } 
              else                                     { 
                  return 0;                            }
              return 0;                                }
          Ответить
    • private static int DayInMonth(int month, int year)
              {
                  if (month == 4) return (isLeapYear(year)) ? 29 : 28;
                  return 30 | (month ^ (month >> 3));
              }
      Ответить
    • На Haskell просто gregorianMonthLength
      Ответить

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