Ver Mensaje Individual
  #3  
Antiguo 23-08-2004
JoseBozzano JoseBozzano is offline
Miembro
 
Registrado: ago 2004
Posts: 10
Reputación: 0
JoseBozzano Va por buen camino
fecha_formato

hola, no creo que sea lo mas optimo, pero quizas te ayude en algo, a pesar que no esta hecho en C++, pero seria cuestion de migrarlo nada mas, de hecho, lo que menciono jachguate es lo mas optimo.

Esta funcion podria ser mas sencilla para tu caso, pero yo la hice cuando necesité incluir los ceros a la izquierda en el mes y el dia. Chau.

Funcion llamadora...

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Edit1.Text:=
form1.fecha_formato(datetostr(form1.DateTimePicker1.Date),'dd/mm/aa');
end;

Funcion llamada...

function tform1.fecha_formato(fecha,formato:string):string;
var
fecha_o,ch,d,m,a:string;
aux,largo,i,u:integer;
temp:string;
vector:array[0..9] of string;
begin
i:=0;
u:=i;
aux:=0;
largo:=length(fecha);
while (i <= 9) do begin
ch:=copy(fecha,i+1,1);
if (ch <> '/') then begin
vector[u]:=ch;
aux:=aux + 1;
i:=i+1;
u:=u+1;
end else begin
if aux = 2 then begin
i:=i+1;
u:=i-1;
aux:=0;
end else begin
temp:=vector[u - 1];
vector[u - 1]:='0';
vector[u]:=temp;
aux:=0;
i:=i+1;
u:=u+1;
end;
end;
end;
fecha_o:=vector[0];
for i:=0 to largo - 2 do begin
fecha_o:=fecha_o + vector[i + 1];
end;
d:=copy(fecha_o,3,2);
m:=copy(fecha_o,1,2);
a:=copy(fecha_o,5,4);
if formato = 'mm/dd/aa' then
result:= d + '/' +m + '/' + a ;
if formato = 'dd/mm/aa' then
result:= m + '/' + d + '/' + a ;
end;
Responder Con Cita