Hola Ledian_Fdez bueno ahora re pongo tu misma funcion un poco modificada...
primero el CI aparte de la fecha de nacimiento te brinda el sexo pues el penultimo numero del CI si es par es hombre y si es impar bueno tu sabes...
por ejemplo te pongo un grupo de funciones y luego la tuya... OK...
esta funcion es del truco 389 de trucomania
Código Delphi
[-]
function DiasMes(fecha: TDateTime): integer;
var
PrimerDiaMes, PrimerDiaMesSiguiente : TDateTime;
anyo, mes, dia: Word;
begin
DecodeDate( fecha, anyo, mes, dia );
primerDiaMes := EncodeDate(anyo, mes, 1);
primerDiaMesSiguiente := IncMonth(primerDiaMes, 1);
result := Round(primerDiaMesSiguiente - primerDiaMes);
end;
esta me brinda el sexo.
Código Delphi
[-]
function sexo(a:integer):boolean;
begin
Result:=False;
if (a mod 2)=0 then
result:=True;
end;
y esta es la ultima... te especifico que a esta ultima le pasas el numero de CI completo no solo la fecha sino completo para que te devuelva el sexo en una variable global OK...
Código Delphi
[-]
Function ValidaCI(CI : String) : Boolean;
var
dia, mes, anio:Word;
sex:Integer;
fecha : TDateTime;
begin
result:=True;
if Length(CI)<>11 then
begin
Result := False;
Application.MessageBox('No. Carnet de Identidad incompleto.' + #13 + 'Rectifique por favor.','SAF', MB_ICONERROR);
end;
anio:=StrToInt(Copy(CI,0,2));
mes:=StrToInt(Copy(CI,3,2));
dia:=StrToInt(Copy(CI,5,2));
sex:=StrToInt(CI[Length(CI)-1]);
try
fecha:=EncodeDate(anio, mes, dia);
except
end;
if DiasMes(fecha)then
begin
Application.MessageBox('Error en la cantidad de dias.' + #13 + 'Rectifique por favor.','SAF', MB_ICONERROR);
result:=False;
Exit;
end;
if not IsValidDate(anio, mes, dia) then
begin
Application.MessageBox('Error en la cantidad de dias.' + #13 + 'Rectifique por favor.','SAF', MB_ICONERROR);
Result:=False;
exit;
end;
if sexo(sex)then
ShowMessage('Es macho')
else
ShowMessage('Es jebita');
end;
bueno a lo mejor se puede optimizar un poco mas pero bueno eso es todo... espero te sirva... OK chaooo
sin mas
Mystery
PD: todo esto es con un form un boton y un Edit, en el onclick llamas a la funcion pasandole el CI OK chaooo