Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-08-2003
Avatar de @-Soft
@-Soft @-Soft is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 200
Poder: 21
@-Soft Va por buen camino
convertir fechas a dias

hola

tengo una aplicacion en produccion que consiste de un programa de control de reparaciones de equipos vendidos en la tienda donde trabajo, y se me ha notiifcado que esta produciendo unos pequeños errores logicos.

la aplicacion es capaz de determinar el tipo de garantia de un equipo por medio de una fecha que se le introduce pero de vez en cuando despliega el resultado equivocado.

ejemplo


un aparato que es comprado en la tienda, tiene un año de garantia y a su vez este se divide en 3 meses de pieza y 9 meses de servicio tecnico.


en el calculo yo reste una fecha introducida manual mente y la fechas actual que como resultado obtengo los dias que ese equipo posee en las manos del cliente.

luego de acuerdo al resultado de la resta hago una condicion para validar la garantia de acuerdo a los dias que tiene el equipo.

este metodo al parecer no es exacto del todo, la pregunta es existe alguna forma de convertir una fecha en dias, si es asi necesito que me hagan saber urgentemente.

gracias de antemano
salu2
__________________
Ivan Lora

http://www.arrobasoft.da.ru

Valientes son aquellas personas que triunfan donde otros fracasan.
Bienaventurado los que nada esperan porque jamas seran defraudados.

Última edición por @-Soft fecha: 28-08-2003 a las 14:32:13.
Responder Con Cita
  #2  
Antiguo 28-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
La parte entera de un TDateTime es la fecha en días... ¿Qué tipo de inexactitud has encontrado?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 28-08-2003
Avatar de @-Soft
@-Soft @-Soft is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 200
Poder: 21
@-Soft Va por buen camino
hola

vamos a suponer que la variable vdias obtiene el resultado de la resta de fechas.


las condicion seria asi:

var
ndias : variant;

ndias := date - defechacompra.date;

if ndias >= 0 and ndias <= 90 then
begin
edtipogarantia.text := 'COMPLETA';
end else
if ndias > 90 and ndias <= 275 then
begin
edtipogarantia.text := 'SERVICIOS';
end else
edtipogarantia.text := 'NINGUNA'; end;
end;

este es el codigo que utilizo para desplegar automaticamente el tipo de garantia.

de vez en cuando si un en equipo ha sido comprado en fechas de 28/05/2003 este despliega el tipo de garantia NINGUNA teniendo que desplegar COMPLETA.

espero que hallas podido comprender .

gracias.
__________________
Ivan Lora

http://www.arrobasoft.da.ru

Valientes son aquellas personas que triunfan donde otros fracasan.
Bienaventurado los que nada esperan porque jamas seran defraudados.
Responder Con Cita
  #4  
Antiguo 28-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿¿El código que me has pasado es exactamente el que estas usando??... No creo que lo sea, pues no compilaría...
Como primer punto, quiero sugerirte que si puedes evitar utilizar datos del tipo Variant, lo evites, como segundo te digo que del 28/05/2003 al día de hoy han pasado 92 días, por lo tanto el tipo de garantía es "Servicios"...

Suponiendo que la fecha ingresada no va a ser mayor que la de hoy, he resumido tu código en esto:

Suponiendo que la fecha ingresada no va a ser mayor que la de hoy, he resumido tu código en esto:
Código:
var
  nDias: Integer;
begin
  nDias := Trunc(Date - defechacompra.Date);

  if nDias <= 90 then
    edtipogarantia.text := 'COMPLETA'

  else if (nDias <= 275) then
    edtipogarantia.text := 'SERVICIOS'

  else
    edtipogarantia.text := 'NINGUNA';
end;
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 29-08-2003
Avatar de @-Soft
@-Soft @-Soft is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 200
Poder: 21
@-Soft Va por buen camino
hola

pues dejame decirte que si compila, puesto que el sr. marcoszorrilla me hecho una mano, pero ese codigo es un ejemplo mas o menos para ver si comprendes lo que quiero decirte.

debido a que la garantia se cumple de acuerdo a un rango de tiempo

de 0 a 90 dias tiene garantia COMPLETA

de 91 a 275 tiene garantia SERVICIOS

mayor que 275 tiene garantia NINGUNA

pero de vez en cuando la garantia esta en el rango de 0 a 90 dias y despliega el resultado de NINGUNO, ese es el problema, ¿Porque lo hace?, no lo se.

otra cosa, que se supone que hace el comando Trunc que colocaste en el codigo.

Saludo
__________________
Ivan Lora

http://www.arrobasoft.da.ru

Valientes son aquellas personas que triunfan donde otros fracasan.
Bienaventurado los que nada esperan porque jamas seran defraudados.
Responder Con Cita
  #6  
Antiguo 29-08-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
El trunc lo pongo para poder guardar el dato en un entero, ya que solo no interesa la parte entera del dato, y en el caso de que sea fecha/hora y tenga decimales puede fallarnos.
Con respecto al error, el código que te he pasado no falla, el que tu me has pasado puedo suponer que has puesto al revés la resta (defechacompra.Date - Date), te de un número negativo y por eso te ponga ninguna, ¿Debugueaste paso a paso el código?... ¿Qué da en nDias cuando falla?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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


La franja horaria es GMT +2. Ahora son las 02:04:50.


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