Ver Mensaje Individual
  #7  
Antiguo 02-03-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Reputación: 25
egostar Va camino a la fama
Cita:
Empezado por delphi.com.ar
Yo te recomendaría pasar los strings a un TDateTime y utilizar la función SecondsBetween .

PD: Es importante tener la premisa que para trabajar con fechas lo mejor es que estas sean fechas y no cadenas!
Hola, yo estoy totalmente de acuerdo contigo.

Cita:
Empezado por acertij022
Lamentablemente no es la socucion supon que hay que calcular la diferncia entre:

20070302000001
20070301235959

Igualmente muchas gracias
Lo que yo creo es que tu problema es que no sabes como 'pasar' de un string a un DateTime, aqui te pongo un ejemplo de como hacerlo.

Código Delphi [-]
// Requieres la Unit DateUtils

var
  Inicial,Final: String;
  FInicial,FFinal: TDateTime;
  Duracion: Int64;

:::::::::

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Inicial  := '20070301235946';
  Final    := '20070302000006';

  //Aqui se convierte tu string a TDateTime
  FInicial := StrtoDateTime(Copy(Inicial,7,2)+'/'+
                            Copy(Inicial,5,2)+'/'+
                            Copy(Inicial,1,4)+' '+
                            Copy(Inicial,9,2)+':'+
                            Copy(Inicial,11,2)+':'+
                            Copy(Inicial,13,2));
  FFinal   := StrtoDateTime(Copy(Final,7,2)+'/'+
                            Copy(Final,5,2)+'/'+
                            Copy(Final,1,4)+' '+
                            Copy(Final,9,2)+':'+
                            Copy(Final,11,2)+':'+
                            Copy(Final,13,2));

  Duracion := SecondsBetween(FFinal,FInicial);

  Label1.Caption := DateTimetoStr(FInicial);
  Label2.Caption := DateTimetoStr(FFinal);
  Label3.Caption := InttoStr(Duracion);
end;

Esto puede no ser lo mejor ni muy elegante pero funciona, estuve usando diferentes variables y en algunos casos hay una diferencia de 1 segundo, quizas por cuestiones de redondeo, no se.

Saludos y espero te ayude.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita