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

    +15.2

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    BOOL ConvertDays(UINT32 days, SYSTEMTIME* lpTime)
    {
        int dayofweek, month, year;
        UINT8 *month_tab;
    
        //Calculate current day of the week
        dayofweek = GetDayOfWeek(days);
    
        year = ORIGINYEAR;
    
        while (days > 365)
        {
            if (IsLeapYear(year))
            {
                if (days > 366)
                {
                    days -= 366;
                    year += 1;
                }
            }
            else
            {
                days -= 365;
                year += 1;
            }
        }
    
    
        // Determine whether it is a leap year
        month_tab = (UINT8 *)((IsLeapYear(year))? monthtable_leap : monthtable);
    
        for (month=0; month<12; month++)
        {
            if (days <= month_tab[month])
                break;
            days -= month_tab[month];
        }
    
        month += 1;
    
        lpTime->wDay = days;
        lpTime->wDayOfWeek = dayofweek;
        lpTime->wMonth = month;
        lpTime->wYear = year;
    
        return TRUE;
    }

    То что вызвало зависание всех MS Zune 30Gb по всему миру.

    Запостил: guest, 03 Января 2009

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

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