to jezevec: Na některá data ti to nešlape, např. 020202.
Tady je něco ode mě. Dle mého to funguje. Kdybys chtěl ošetřit, že celý formát rodného čísla musí být napsán správně, stačí napsat, dopíšu.
Kód:
program Datum_narozeni;
uses crt;
var
pohlavi,vstup,rok,mesic,den:string;
Begin
clrscr;
pohlavi := 'Muž';
writeln('Zadejte, prosím, rodné číslo:');
readln(vstup);
If length(vstup) <> 6 then Begin
writeln('Špatně zadané rodné číslo!');
readln;
Exit;
End;
Case vstup[3] of
'5','6','7','8' : pohlavi := ('Žena');
End;
Case vstup[3] of
'0','2','5','7' : mesic := '0' + vstup[4];
else mesic := '1' + vstup[4];
End;
If vstup[1] = '0' then rok := ('20' + vstup[1] + vstup[2])
else rok := ('19' + vstup[1] + vstup[2]);
den := vstup[5] + vstup[6];
writeln('Datum narození:',den,'.',mesic,'.',rok);
writeln('Pohlaví:',pohlavi);
readln;
End.
EDIT: Kdybyste se divili, proc mam v case 7,8 atd, tak :
Od roku 2004 (zákonem č. 53/2004 Sb.) je zavedena možnost v případě, že jsou v nějaký den vyčerpána všechna platná čtyřčíslí, použít alternativní rodné číslo, u kterého mají muži k číslu měsíce přičteno 20 a ženy 70.EDIT2: Když je rok 00-09, tak to je 2000, ale 10 a 11 je 1900, jestli to chceš změnit, řekni. Myslím, že se liší čísly za lomítkem, takže normálně to neni poznat a hranice někde musí být. Nemohl bys sem postnout/poslat zadání úlohy? Abych si moh bejt jistej, kdy to je dobře
