Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Existe DateUtils para Delphi 5? (https://www.clubdelphi.com/foros/showthread.php?t=55270)

ContraVeneno 11-04-2008 22:34:10

¿Existe DateUtils para Delphi 5?
 
¿Alguien tendrá una pista si existirá la unidad DateUtils para delphi 5 ?

¿Son muchas funciones las que se implementan en esta unidad que no existen en Delphi 5?

¿Valdría la pena hacer el esfuerzo para pasar la unidad DateUtils implementada desde delphi 6 a Delphi 5?

Concretamente yo estoy buscando las funciones MonthsBetween y YearsBetween para delphi 5.

Las cuales podría implementar como función en mi programa. Pero quiero saber si vale la pena transformar toda la unidad para que funcione en Delphi 5

jhonny 11-04-2008 22:54:14

En Delphi5 se llama DateUtil ;), no recuerdo si esas funciones que necesitas estan allí, pero seguramente hay otras que hacen los mismo en esa misma unidad :).

ContraVeneno 11-04-2008 23:22:39

akelas, eso demuestra lo novato que sigo siendo... no se porque no la había visto... pero no daré excusas, no ví que ahí estaba la unidad DateUtil.

Veré que puedo hacer por la función YearsBetween, que es la que no veo... pero igual y se me estaba escapando también.

Gracias por el dato jhonny.

jhonny 11-04-2008 23:33:17

Cita:

Empezado por ContraVeneno (Mensaje 279425)
Gracias por el dato jhonny.

Que bueno que de algo te sirva el dato :), por otro lado... tal vez te sirva la función YearSpan (Aunque la verdad es que no es muy precisa), de todas formas pruebala bien y nos cuentas ;).

jhonny 11-04-2008 23:37:29

Aunque viéndolo desde otro punto de vista, la implementación de la función YearsBetween simplemente es esta:

Código Delphi [-]
 
function YearsBetween(const ANow, AThen: TDateTime): Integer;
begin
  Result := Trunc(YearSpan(ANow, AThen));
end;

ContraVeneno 11-04-2008 23:48:39

Y la implementación de la función YearSpan es esta:

Código Delphi [-]
Var
  { average over a 4 year span }
  ApproxDaysPerMonth: Double = 30.4375;
  ApproxDaysPerYear: Double  = 365.25;

  { The above are the average days per month/year over a normal 4 year period. }
  { We use these approximations because they are more accurate for the next }
  {  century or so.  After that you may want to switch over to these 400 year }
  {  approximations... }
  {    ApproxDaysPerMonth = 30.436875 }
  {    ApproxDaysPerYear  = 365.2425 }

.....
function YearSpan(const ANow, AThen: TDateTime): Double;
begin
  Result := DaySpan(ANow, AThen) / ApproxDaysPerYear;
end;
...
function DaySpan(const ANow, AThen: TDateTime): Double;
begin
  Result := SpanOfNowAndThen(ANow, AThen);
end;

function SpanOfNowAndThen(const ANow, AThen: TDateTime): TDateTime;
begin
  if ANow < AThen then
    Result := AThen - ANow
  else
    Result := ANow - AThen;
end;


Complicado, complicado, pues no es...

Lepe 12-04-2008 02:04:16

No, claro, esas dos constantes son muy intuitivas y seguro que yo mismo las habría deducido cómo máximo en 3 minutejos, bah... será por deducir.... :p

Saludos

jhonny 12-04-2008 02:06:54

Cita:

Empezado por Lepe (Mensaje 279461)
No, claro, esas dos constantes son muy intuitivas y seguro que yo mismo las habría deducido cómo máximo en 3 minutejos, bah... será por deducir.... :p

Saludos

Cierto :D, es que creí que D5 tenia la función YearSpan :D.

ContraVeneno 12-04-2008 16:08:37

Entonces, ¿puedo dejar la función así?:
Código Delphi [-]
function YearsBetween(const ANow, AThen: TDateTime): Integer;
Begin
 Result := Trunc((Abs(ANow - AThen)) / 365.2425);
end;

jhonny 12-04-2008 16:26:13

Cita:

Empezado por ContraVeneno (Mensaje 279552)
Entonces, ¿puedo dejar la función así?:

No veo, el "porque no", solo que para migrar ese proyecto en el futuro
tendrás que tener en cuenta ese detalle y decidir si desea seguir usando
tu implementación o la que viene de fabrica ;).


La franja horaria es GMT +2. Ahora son las 06:33:40.

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