Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Pasar fecha a número (https://www.clubdelphi.com/foros/showthread.php?t=39795)

m.ruiz 30-01-2007 10:11:21

Pasar fecha a número
 
Hola a todos. Tengo un pequeño problema con el formato de una fecha, a ver si alguien puede arrojar algo de luz sobre esto porque no consigo que me salga lo que quiero. Gracias por adelantado!!!:D

Os cuento. Mi objetivo final es sacar una fecha media ponderada. El cliente me ha pasado un documento de excell con unos cálculos que él ya tiene preestablecidos, y yo en la aplicación que estoy creando debo respetar esos calculos. Estos son los campos que tengo en excell:

Animales
300
Fecha
17/03/2005
Fechaformatonumero
38428 (Este número sale con una función qeu tengo en excell que transforma la fecha a formato número). Es la fecha anterior pasada a número.

Mi pregunta es que ¿¿cómo puedo pasar una fecha a formato número en delphi??
Realmente lo que necesito es hacer cálculos con esa fecha en formato número, multiplicar y dividir básicamente. Voy a sacar estadísticas de días medios y necesito operar con este valor.
He estado leyendo que en delphi se pueden sumar y restar fechas, pero no he visto nada de multiplicar y dividir, por eso he pensado en cambiar el formato fecha a número......Aunque no se si estoy en el camino correcto.

Como os he dicho antes, muchas gracias por adelantado. Muchos de los temas de este foro ya me han ayudado a superar estos baches de principiante que tengo..jejeje...Saludossss!!!!!:D

Lepe 30-01-2007 10:40:16

Una fecha en delphi es un número, en concreto, el número de días que han pasado desde el calendario Base (31/12/1899) lo de multiplicar dos fechas... se me escapa un poco.

01/02/2007 * 05/06/2004 = :confused::confused: / :confused::confused: / :confused::confused::confused::confused:

:D

Pero vamos, siempre puedes hacer un integer(Date()) y ya tienes el número. Más bien deberías investigar qué significa (el concepto) del número obtenido en excel.

Edito: Incluso si declaras las fechas como DateTime, podrás dividir y multiplicar con ellas sin errores de compilación... otra cosa será el resultado obtenido :)

Saludos

m.ruiz 30-01-2007 10:48:49

vamos a intentarlo!!
 
Muuuchas gracias!! voy a intentarlo como tú dices, a ver si consigo que funcione correcto!
un saludoooo!!!:)

Spynosa 30-01-2007 10:52:10

Efectivamente la fecha en delphi es un double.

prueba esto:

Código Delphi [-]

procedure TForm1.Button1Click(Sender: TObject);
var f:TDate;
begin
    f:=38428;
    showmessage(datetostr(f));
end;

procedure TForm1.Button2Click(Sender: TObject);
var f: Double;
    T:TDate;
begin
    t:=strtodate('17/03/2005');
    f:=t;
    ShowMessage(floattostr(f));
end;

Neftali [Germán.Estévez] 30-01-2007 11:13:10

Cita:

Empezado por m.ruiz
Realmente lo que necesito es hacer cálculos con esa fecha en formato número, multiplicar y dividir básicamente. Voy a sacar estadísticas de días medios y necesito operar con este valor.

Para pasar la fecha a número asta con que la asignes a una variable de tipo numéico. Aunque yo utilizaría un Double en lugar de un Integer, ya que es realmente el tipo correcto.
La definición en Delphi es así:

Código Delphi [-]
type TDate = type TDateTime;
type TDateTime = type Double;

De todas formas, antes de hacer operaciones con números revisa la unit DateUtils que posee muchas funciones para operarar con fechas.

EDITO: Veo que llego tarde... :o

m.ruiz 30-01-2007 11:17:24

solucionado!!
 
Muchas gracias!! con todas vuestras aportaciones ya tengo resuelto lo que necesitaba....si es que esto es cuestión de prestar un poco de atención y revisar la ayuda de delphi!!! AHHH! y como no, vuestros consejos y observaciones ..... ahiiiiisssss tendré que estudiar más!!!

graciasss!!!:D


La franja horaria es GMT +2. Ahora son las 01:34:53.

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