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 27-06-2004
Paradiso Paradiso is offline
Miembro
 
Registrado: jun 2004
Posts: 68
Poder: 20
Paradiso Va por buen camino
Contar Dias

Hola Amigos De CLub Delphi.



Les comento, en un soft que estoy desarrollando actualmente para una Pesquera, necesito guardar la cantidad de dias de un viaje Normal, para ello
hago lo siguiente ( aclaracion: Delphi 7 + DbExpress+ Interbase):

function CantidadDeDias(Fecha1:Tdate;Fecha2:Tdate):integer; {devuelva la cantidad de dias entre dos fechas}
begin
if DaysBetween(Fecha1,Fecha2) = 0 then result := 1
else result := DaysBetween(Fecha1,Fecha2);
end;

La Cuestion es que si yo ingreso, por medio de TxDBDateEdit, por ejemplo
01/06/04 como fecha Inicio y 10/06/04 como fecha final. En Teoria me tendria que devolver 10 dias, PERO ME DEVUELVE 9.!!!
Ahora si ingreso cualquier otra fecha que no sea a partir del primero de mes, el calculo lo hace bien.

Espero haber sido claro, y desde Muchisimas Gracias.!!!!!!

Paradiso.
Responder Con Cita
  #2  
Antiguo 27-06-2004
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
Acabo de hacer pruebas y el valor que me devuelve siempre es correcto:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
d1,d2:TDate;
nDias:Integer;
begin
d1:=Date;
d2:=date+500;
nDias:=DaysBetween(D2, d1);
Edit1.Text:=DateToStr(d1);
Edit2.Text:=DateToStr(d2);
edit3.Text:=IntToStr(nDias);
end;

Cita:
Description

Call DaysBetween to obtain the difference, in days, between two TDateTime values.

DaysBetween counts only whole days. Thus, DaysBetween reports the difference between Dec 31, 1999 11:59 PM and Jan 1, 2000 11:58 PM as 0 because the difference is one minute short of an entire day.
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 27-06-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Probablemente te interese mas la funcion DaySpan que te devuelve un Double con el dia y la porción de dia. Supongo que tu problema es la hora de los datetimes y por eso no te dá el dia completo.

Cita:
Call DaySpan to obtain the difference, in days, between two TDateTime values. Unlike the DaysBetween function, which only counts whole days, DaySpan reports incomplete days as a fraction of an entire day.
Yo usaria tipos de datos TDateTime en lugar de Date solamente, y si no usas las horas, la establece por código para que sea la misma y te devuelva dias completos.

Saludos

Última edición por Lepe fecha: 27-06-2004 a las 11:50:17.
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 17:31:54.


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