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 20-05-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
dias totales de una fecha

Tengo una base de datos en Interbase con los campos:

-fecha_inicial
-duracion

el calculo que tengo que hacer es el siguiente:
(fecha_inicial * duracion) - fecha_actual

Mi problema es que no sé que funcion debo de utilizar para que esto me vaya, ya que si lo pongo tal cual lo tengo puesto, da error pq no puedo multiplicar una fecha por un valor (es comprensible).
Me gustaria saber si hay alguna funcion en Delphi que me obtenga el nº de dias totales de una fecha para luego multiplicarlos por un valor.
Puede que esté enfocando el problema de un modo erróneo, asi que si se os ocurre algun otro modo, decidlo, vale???

Gracias ^_^

Saludos
Responder Con Cita
  #2  
Antiguo 20-05-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No veo claro lo que expones.

No será:

Código Delphi [-]
Duracion:=Fecha_Actual - Fecha_inicial;


Mejor amplía un poco la información.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 20-05-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
Cita:
Empezado por marcoszorrilla Ver Mensaje
No veo claro lo que expones.

No será:


Código Delphi [-]Duracion:=Fecha_Actual - Fecha_inicial;




Mejor amplía un poco la información.

Un Saludo.
Me voy a explicar mejor, q las explicaciones reconozco que no son lo mio, asi que mejor pongo un ejemplo para que se entienda:
tengo un programa que compré un dia (fecha_inicial) y que caduca la licencia dentro de x años (duración). Lo que yo quiero saber es cuántos dias faltan para que caduque el programa desde la fecha en la que me encuentro:
(fecha_inicial * duracion) - fecha_actual
Responder Con Cita
  #4  
Antiguo 20-05-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Nereida, puedes hacerlo de esta forma.

Código Delphi [-]
var
 CantDias : Integer;
 FchCaducidad : TDateTime;
begin
 //Añadimos la cantidad de años a la fecha inicio
 FchCaducidad := IncYear(fecha_inicial, duracion);

 //Calculamos la cantidad de dias entre las dos fechas
 CantDias := DaysBetween(fecha_actual,FchCaducidad);
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 20-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cool

Cita:
Empezado por Nereida Ver Mensaje
Tengo una base de datos en Interbase con los campos:

-fecha_inicial
-duracion

el calculo que tengo que hacer es el siguiente:
(fecha_inicial * duracion) - fecha_actual
Creo que este calculo esta malo....

pienso que deberia ser algo así

(fecha_Inicial + Duración) - Fecha_Actual

la idea es sumar la duración (años, meses, dias...) a la fecha inicial, y restarla a la fecha_actual

por lo cual, si te dan la fecha en años y o meses, deberás convertir todo a dias, sumar esos dias a la fecha_inicial y al resultado restarle la fecha actual, te dará un resultado en dias... por lo cual eso deberás convertirlo luego a años, meses y dias...

Salu2
__________________
BlueSteel
Responder Con Cita
  #6  
Antiguo 20-05-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Amigo Blue, por lo que explica Nereida en su segundo comentario la duración contiene la cantidad de años, por lo que solo debería de aumentar a su fecha inicial la cantidad de años que puede hacerlo con IncYear, lo del "*" también me ha llamado la atención.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #7  
Antiguo 20-05-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cool

Cita:
Empezado por Caro Ver Mensaje
Amigo Blue, por lo que explica Nereida en su segundo comentario la duración contiene la cantidad de años, por lo que solo debería de aumentar a su fecha inicial la cantidad de años que puede hacerlo con IncYear, lo del "*" también me ha llamado la atención.

Saluditos
Bueno, por eso puse que el calculo estaba mal... no me cuadraba el multiplicar la fecha_inicial por la duración....


Pero depende de los Distribuidores de Softwares, hay algunos que te dan licencia por meses, asi que no se si el IncYear seriviria... por eso yo optaria por transformar todo a dias y sumarlos a la fecha_inicio.....

Salu2
__________________
BlueSteel
Responder Con Cita
  #8  
Antiguo 20-05-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues yo creo que si a la fecha final le restamos la del día de hoy nos dará los días de licencia que quedan y de esta manera no es necesario que intervenga la fecha inicial.

Si queremos saber los dias transcurridos de la licencia, fecha actual - fecha inicial.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #9  
Antiguo 21-05-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
Muchisimas gracias Caro, lo termino de hacer asi y me funciona genial.

Así no he tenido que compliarme tanto la vida.

Gracias =D

Saludos
Responder Con Cita
  #10  
Antiguo 18-06-2008
elaprendizprog elaprendizprog is offline
No confirmado
 
Registrado: abr 2008
Posts: 9
Poder: 0
elaprendizprog Va por buen camino
Cool Graficos de Dias Trancurridos

Bueno dias,
Necesito de su ayuda a realizar un form de consulta pero al mismo le quiero poner un Grid donde me muestro los numero de la solicitu y los dias transcurridos hasta la fecha, tomando en cuenta que deberia ser una cuenta regresiva de 60 dias es necesario que en el grid me muestre un grafico con barras de colores donde la funcion de esta barra debe ser que a medida que trancurran los dias se haga mas pequeña: ejemplo a los sesenta dias sea de color azul y grande a los trenta de color anarajado y mas pequeña y cuenado llegue los ultimos 15 dias se pequeña y de color rojo hasta llegar a 0 dias, tomando en cuenta que guardo la fecha inicial en la base de datos Interbase con un campo Varchar no se como tomar la fecha actual y que me saque la diferencias de dia transcurridos tal como lo explique. Estoy programando en delphi2005 con base de dato interbase.
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
Fecha con dos dias futuro por qué?... ronimaxh Conexión con bases de datos 2 01-02-2008 20:07:49
Sumar totales de una fecha rober_kobe SQL 2 22-10-2007 17:30:33
DIFERENCIA de Dias entre una fecha y la fecha del sistema drakkon MySQL 1 11-06-2007 10:34:06
Sumar Dias a una fecha? danytorres SQL 1 16-01-2004 05:04:15
Dias entre una fecha y la fecha del sistema afarenas Firebird e Interbase 1 30-09-2003 17:36:53


La franja horaria es GMT +2. Ahora son las 10:53:05.


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