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

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
long Date :: ConvertToDays()
    {
        int M=0,Y=0;
        for(int i=2;i<=m_Year;i++) 
        {
            if((i%4 == 0) && (i%100 !=0) || (i%400==0))Y+=366;
            else Y+=365;
        }
        for(i=2;i<=m_Month;i++){
            if (i == 1)M=0;else
            if ((((m_Year%4 == 0) && (m_Year%100 !=0) || (m_Year%400==0)) && (i == 3)))M+=29;else
            if ((((m_Year%4 != 0) || ((m_Year%100 ==0) && (m_Year%400 !=0))) && (i == 3)))M+=28;else
            if ((i == 2) || (i == 4) || (i == 6)  || (i == 8) || (i == 9) || (i == 11))M+=31;else
            if ((i == 5) || (i == 7) || (i == 10) || (i == 12))M+=30;
        }
        return m_Day+M+Y;
    }

Взято с forum.xakep.ru

Запостил: psina-from-ua psina-from-ua, (Updated )

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

  • Больше похоже на решение какой-то олимпиадной задачи школьником.
    Ответить
    • Из того что написал автор этого кода я понял что это никакая не олимпиадная задача. Возможно д\з, или студенческая лаба, или еще что-то.
      Ответить
  • Первый раз встречаю разделенные пробелами имя класса и метода вокруг ::
    Не понятно почему цикл с двойки начинается. Нулевого года н.э. не было, но первый то был.
    Ответить
    • ну, судя по дальнейшему форматированию - лапки иногда соскальзывали с Ctrl+C/Ctrl+V на пробел, никакого сакрального смысла. как бы неудивительно, кем бы себя не возомнил журнал "страна игр" - он останется сраным игрожуром
      Ответить
    • >> Не понятно почему цикл с двойки начинается.

      Потому что
      int M=0,Y=0;
      ...
      if (i == 1) M=0; else

      Автор решил пропустить бесполезную строку, но забыл удалить её
      Ответить
      • Похоже на то. Определение в двух местах високосного года тоже доставляет.
        Ответить
  • очередная говнолаба без массивов и с копипастой?

    КГ/АМ
    Ответить
  • не тока год с двойки, и вообще как это понимать?!
    for(i=2;i<=m_Month;i++){
    if (i == 1)M=0;else
    задача для 1-го курса, 1-й лабы, как разминочная. не более.
    Ответить
  • Кстати, а зачем при проверке високосного года проверять, кратен ли год 100? Если год кратен 100, то он кратен и 4 (так как 4 является делителем 100) .
    Ответить
    • Там условия проверки разные, если обратить внимание (равенство и неравенство).
      С википедии :
      год является високосным, если он кратен 4 и при этом не кратен 100, либо кратен 400. 
      Год не является високосным, если он не кратен 4, либо кратен 100 и не кратен 400.
      Ответить
  • Кстати, Григорианский календарь приняли лишь 4 октября 1582 года
    Так что до этой даты високосным годом был тот, который просто делился на 4.
    Ответить

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

Помни, guest, за тобой могут следить!

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


    8