Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2007
Avatar de m.ruiz
m.ruiz m.ruiz is offline
Miembro
 
Registrado: ene 2007
Posts: 43
Poder: 0
m.ruiz Va por buen camino
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!!!

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!!!!!
__________________
MoNiCa
Responder Con Cita
  #2  
Antiguo 30-01-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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 = / /



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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 30-01-2007 a las 10:43:40.
Responder Con Cita
  #3  
Antiguo 30-01-2007
Avatar de m.ruiz
m.ruiz m.ruiz is offline
Miembro
 
Registrado: ene 2007
Posts: 43
Poder: 0
m.ruiz Va por buen camino
vamos a intentarlo!!

Muuuchas gracias!! voy a intentarlo como tú dices, a ver si consigo que funcione correcto!
un saludoooo!!!
__________________
MoNiCa
Responder Con Cita
  #4  
Antiguo 30-01-2007
Avatar de Spynosa
Spynosa Spynosa is offline
Miembro
 
Registrado: nov 2004
Ubicación: Ecija - Sevilla
Posts: 99
Poder: 20
Spynosa Va por buen camino
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;

Última edición por Spynosa fecha: 30-01-2007 a las 11:50:22.
Responder Con Cita
  #5  
Antiguo 30-01-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Thumbs up

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...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 30-01-2007
Avatar de m.ruiz
m.ruiz m.ruiz is offline
Miembro
 
Registrado: ene 2007
Posts: 43
Poder: 0
m.ruiz Va por buen camino
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!!!
__________________
MoNiCa
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar de numero a letras omy Varios 3 09-10-2005 06:10:11
Número de días a fecha magm2000 Varios 2 15-09-2005 02:28:16
Pasar a string la fecha de un DateTimePicker JELIRM Varios 5 30-06-2005 18:41:11
Comparar una fecha de n campo date contra fecha actual amadis SQL 2 27-06-2005 21:37:41
Genrar registros a partir de una fecha y numero mosorio Firebird e Interbase 2 05-11-2004 09:40:16


La franja horaria es GMT +2. Ahora son las 01:35:30.


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
Copyright 1996-2007 Club Delphi