Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como sacar diferencia entre 2 fechas con Delphi 5? (https://www.clubdelphi.com/foros/showthread.php?t=45117)

flystar 23-06-2007 00:15:53

Como sacar diferencia entre 2 fechas con Delphi 5?
 
Buenos Días:

Solicito Ayuda a alguna alma caritativa:

Requiero sacar la diferencia en tiempo entre dos variables de tipo datetime,
uso Delphi 5 y en esta version las siguientes funciones no existen
  • YearsBetween ,MonthsBetween ,WeeksBetween ,DaysBetween ,HoursBetween ,MinutesBetween ,SecondsBetween ,MilisecondsBetween
De hecho no existe ninguna funcion que saque directamente la diferencia entre dos variables de tipo tiempo o fecha.

ME gustaria saber si alguna persona me pueda informar si por aqui hay alguna rutina que me sirva para sacar la diferencia de tiempo o alguna orientacion que pueda servirme.
NO estoy seguro si restar directamente dos variables de tipo datetime da como resultado la diferencia, y si la da..no tengo idea de como extraer de ahi la diferencia de tiempo. No lo se. Alguna rutina? Muchas Gracias.

dec 23-06-2007 00:20:58

Hola,

Echa un vistazo a este mensaje del compañero Seoane. Y es que hay que usar más el buscador de los Foros.

He buscado por "restar fechas" y me han aparecido varios resultados, entre ellos el que te enlazo. :)

flystar 23-06-2007 00:40:24

Gracias David:

Si me tome "un poco" de tiempo para revisar los foros, no se por que la comunidad en Internet da por hecho que no buscaste si haces una pregunta, a la mejor si buscaste pero las respuestas no fueron las adecuadas a lo que buscas, y si mas no me equivoco casi todas hablan de usar funciones que solo existen en Delphi 6 en adelante y por eso fue que especifique que uso delphi 5.

De hecho en muchos foros y sobre todo de Linux existe un dogmatismo donde Ay de ti si se te ocurre preguntar algo por que casi te dan una patada, ya que casi cualquier cosa que preguntes ya habia sido dicha en quien sabe que mensaje. En fin

Aun asi hechare un vistaso Gracias.

dec 23-06-2007 00:48:50

Hola,

Cita:

Aun asi hechare un vistaso Gracias.
Tenías que haberlo hecho antes de decir nada. Acaso buscaste, pero, no lo suficiente. El mensaje que te enlazo trata sobre cómo restar y sumar fechas sin necesidad de las funciones de la unidad "DateUtils", tal como pediste. Por si fuera poco en el mensaje se explica porqué puedes restar o sumar fechas "directamente", sin necesidad de utilizar funciones que no existen en la versión de Delphi con la que trabajas.

AzidRain 23-06-2007 01:26:40

bueno bueno, para que te no te sientas mal o regañado:

Delphi guarda las fechas como un numero real, la parte entera son los días y la decimal los minutos y segundos, de manera que para sacar la diferencia en dias, simplemente haces una resta común y corriente y con eso tienes.
Ahora bien, si quieres minutos o segundos puedes usar cualquiera de las rutinas que mencionas, todas hacen lo mismo con una fecha dada: la convierten a segundos, milisengundos, meses, etc.; lo que varía es el resultado.

Código Delphi [-]
 
var fecha1, fecha2: TDatetime;
  diferencia:integer;

begin
   diferencia:= fecha2-fecha1; // la diferencia en dias
end;

egostar 23-06-2007 03:17:52

Hola flystar te parece justo que se tengan que responder a preguntas que son muy frecuentes :confused::confused:

Para eso tenemos un lugar de búsqueda y una guía de estilos y si te fijas en el punto número 5 de la misma sabras el porque se contesta así.

Salud OS.

ContraVeneno 23-06-2007 16:32:48

Código Delphi [-]
Function CalculaTiempo(FechaIni: TDateTime; FechaFin: TDatetime): String;
var
 Dias, {Meses,} Horas, Minutos{, Segundos}: integer;
 ValorFecha: real;
begin
  ValorFecha:=FechaFin-FechaIni;
  Dias:=Trunc(ValorFecha);
  //Meses:=Trunc((ValorFecha)/30.4);
  Horas:=Trunc(Frac(ValorFecha)*24);
  Minutos:=Trunc((Frac(Frac(ValorFecha)*24))*60);
  //Segundos:=Trunc((Frac((Frac(Frac(ValorFecha)*24))*60))*60);
  CalculaTiempo:=inttostr(Dias)+' Días, '+inttostr(Horas)+' Horas, '+inttostr(Minutos)+' Min.';
end;

Vaya, que cuando uno anda de buen humor... :D

sancarlos 17-05-2011 01:11:56

Unidad
 
Será ,que no has colocado al unidad en los USES, DateUtils


Suerte.

ecfisa 17-05-2011 01:59:05

Cita:

Empezado por sancarlos (Mensaje 400227)
Será ,que no has colocado al unidad en los USES, DateUtils

Suerte.

Hola sancarlos.

Aunque el hilo tiene sus años, te comento que el problema se planteó precisamente por que la unit DateUtils no estaba disponible para la versión 5 de Delphi.

Un saludo.


La franja horaria es GMT +2. Ahora son las 02:39:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi