Existe un calculo para predecir el sexo del futuro bebe basado en las fechas de nacimiento de los padres, y la renovacion de las gonadas cada 5 años para el padre y cada 4 para la madre, aunque no es 100% exacto (ningun metodo de este tipo lo es), pero es bastante preciso
Como estoy proximo a ser papá de nuevo, estando mi esposa en el materno le hice el calculo, y las demas embarazadas tambien quisieron que se los hiciera, en esos dias, de 24 que se lo hice solo falló en 1
Para no tener que hacerlo a mano, quise automatizarlo, pero aunque el calculo es bastante facil, el problema se me presento al ubicar las fechas en una tabla
La tabla debe salir algo como esto:
Desde Hasta Sexo
02/05/1971 17/12/1976 Varon
17/12/1976 02/15/1981 Hembra
...
Hasta ahora esto es lo que hecho, pero solo me salen bien los 2 primeros rangos, a partir del 3ro me salen todos iguales
Por supuesto que este metodo no debe ser el correcto, por eso necesito la ayuda de uds para ver como ubico los rangos en la tabla
var Form1: TForm1; Padre, Madre :array[1..25] of TDateTime; Desde, Hasta :TDateTime; Sexo :string; procedure TForm1.BitBtn1Click(Sender: TObject); var i :Integer; Ap, Am :Word; begin //***** Inicialzar las variables ***** Padre[1]:=StrToDate(FechPadre.Text); Madre[1]:=StrToDate(FechMadre.Text); Ap:=YearOf(Padre[1]); Am:=YearOf(Madre[1]); for i:=2 to 25 do begin //edt1.Text:=edt1.Text+' - '+IntToStr(Ap); //edt2.Text:=edt2.Text+' - '+IntToStr(Am); Ap:=Ap + 5; Am:=Am + 4; Padre[i]:=RecodeYear(Padre[1], Ap); Madre[ i ]:=RecodeYear(Madre[1], Am); end; //***** Llenar la tabla ***** if YearOf(Padre[1]) < YearOf(Madre[1]) then begin Desde:=Padre[1]; Hasta:=Madre[1]; Listado.Cells[2,1]:='Varón'; end else begin Desde:=Madre[1]; Hasta:=Padre[1]; Listado.Cells[2,1]:='Hembra'; end; Listado.Cells[0,1]:=DateToStr(Desde); Listado.Cells[1,1]:=DateToStr(Hasta); for i:=2 to 25 do begin Desde:=Hasta; if Hasta > Padre then begin Sexo:='Hembra'; end else if Hasta < Padre then begin Sexo:='Varón'; end else if Hasta < Padre then Sexo:='??'; if Hasta = Madre then Hasta:=Padre[i+1] else Hasta:=Madre[i+1]; // if Hasta < Padre[i+1] then // begin // Hasta:=Madre[i+1]; // Sexo:='Hembra'; // end // else // begin // Hasta:=Padre[i+1]; // Sexo:='Varón'; // end; Listado.Cells[0,i]:=DateToStr(Desde); Listado.Cells[1,i]:=DateToStr(Hasta); Listado.Cells[2,i]:=Sexo; end; end; [/i]