Mistři v programování na #hovnokod

C/C++ #137

At zije prestupny leden :-) http://forum.builder.cz/read.php?123,3342429,3342448#msg-3342448

bool GetBirthDate(int i, Tuzivatel u)
{
    int md[]={31,22,31,30,31,30,31,31,30,31,30,31};
    char buf[255], *p;
    char *delim=" \t\r\n.,;:";
    printf("%d - Zadejte datum narozeni (d m r): ",i+1);
    u.den=u.mesic=u.rok=-1;
    fgets(buf,255,stdin);
    p=strtok(buf,delim); if(p)u.den=atoi(p);
    p=strtok( 0 ,delim); if(p)u.mesic=atoi(p);
    p=strtok( 0 ,delim); if(p)u.rok=atoi(p);
    if(u.rok < 1900 || u.rok > 2012)return false;
    if(u.rok <= 1900 || u.rok > 2012)return false;
    if(u.mesic < 1 || u.mesic > 12)return false;
    if(u.den < 1 || u.den > md[u.mesic-1])return false;
    if(u.mesic==1 && u.den==29 && (u.rok%4 || u.rok==2000))return false;
    return true;
}

Anonymous,