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

    Всего: 1

  2. PHP / Говнокод #4207

    +161

    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
    function ss ($id){ // получить дату рождения по ИНН для украины
    
    $result = array();
    
        //sex
        $result['sex'] = (substr($id,8,1) % 2) ? 'M' : 'F';
    
        //birthdate
        $days = substr($id,0,5);
        $year = 1900; $day = 01; $month = 01;
        while ($days > 0)
            {
            $daysInYear = (checkdate (02, 29, $year)) ? 366 : 365;
            if ($days > $daysInYear)
                {
                $days -= $daysInYear;
                $year ++;
                }
            else{
                for ($daysInMonth = 31; !checkdate($month, $daysInMonth, $year); $daysInMonth–) ;
                if ($days > $daysInMonth)
                    {
                    $days -= $daysInMonth;
                    $month ++;
                    }
                else{
                    $day = $days;
                    $days = 0;
                    }
                }
            }
        $result['year'] = $year;
        $result['month'] = $month;
        $result['day'] = $day;
    
        return $result;
    }
    
    обходить каждый день начиная с 1900 это сила

    быстрее было бы

    $inn = '2322222222';
    $inn = substr($inn,0,5);
    $normal_date = date("d.m.Y", strtotime('01/01/1900 + ' . $inn . ' days - 1 days'));

    ggggg, 09 Сентября 2010

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