Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-12-2004
fixarg fixarg is offline
Miembro
 
Registrado: oct 2004
Posts: 10
Poder: 0
fixarg Va por buen camino
cantidad de noches

utilizo delhpi 5 interbase 6
necesito hallar la cantidad de noches entre dos fechas (campos date de interbase)... como puedo hacerlo?
Responder Con Cita
  #2  
Antiguo 18-12-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
DaySpan (DateUtils)
Returns the number of days (including fractional days) between two specified TDateTime values.

Primero usa DaysBetween (que da el nº de dias completos)
HorasDeNoche := multiplicas el nº de dias * (horas que hay en cada noche)
NumeroNoches := HorasDeNoche / 24;

Espero que sea esto lo que buscas, supongo que dependiendo del mes, habrá un nº de horas distinto en cada noche, tendrías que controlarlo, o usar un nº constante.

Saludos
Responder Con Cita
  #3  
Antiguo 18-12-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por Lepe
NumeroNoches := HorasDeNoche / 24;
¡¡¡ Vaya tonteria !!! los dias completos siempre tienen 1 noche, al menos hasta ahora ha sido así. D
Responder Con Cita
  #4  
Antiguo 19-12-2004
fixarg fixarg is offline
Miembro
 
Registrado: oct 2004
Posts: 10
Poder: 0
fixarg Va por buen camino
gracias Lepe... me ayuda un poco junto con otras cosas que estuve viendo en hilos anteriores...
Responder Con Cita
  #5  
Antiguo 20-12-2004
fixarg fixarg is offline
Miembro
 
Registrado: oct 2004
Posts: 10
Poder: 0
fixarg Va por buen camino
lo solucione asi

fecha1:TDate;
fecha2:TDAte;
noches: integer;

noches:=trunc(fecha1-fecha2);


lo raro de esto es que no funciona si se quiere asignar el resultado de la función trunc a un parámetro de un procedimiento almacenado...

IBStoredProc2.Params.ParamValues['noches'].asInteger:=trunc( fecha2 - fecha1);

Da el siguiente error:
internal error e6724

Hay que ahcer la asignación mediante una variable como en el ejemplo

da un error interno
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 08:16:44.


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