Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #15  
Antiguo 27-02-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
Es muy facil. Es dificil de creer que la solución que te voy a dar es la más simple y eficiente. Puedes comprobarla, y analiza el algoritmo que te explico, y verás que es correcto.

Yo lo utilizo en mi sistema de gestión de reservas de hoteles.

1. Obtienes todos los registros de fechas de trabajo de un profesor de terminado, ordenados por fechas de inicio. (Muy importante esto último.)

2. Realizas un loop 'Do while not eof' de esos registros obtenidos, habiendo creado previamente dos variables tipo fecha, p.ej. FechaMin y FechaMax.

3. Reemplazas FechaMin y FechaMax con los respectivos valores del 1er registro.

4. Realizamos el 'Do while not eof'

Código Delphi [-]
If (Fecha Inicio Nuevo Registro <= FechaMax)
  and  (Fecha Final Nuevo Registro >= FechaMin) then begin
    if Fecha Final Nuevo Registro > FechaMax then
      FechaMax := Fecha Final Nuevo Registro
end;

Presta especial atención a lo expuesto : Tienes que comparar Fecha Inicio nuevo registro con FechaMax (<=), y Fecha Final nuevo registro con FechaMin (>=).

5. Si la condición anterior NO se cumple estamos ante un nuevo periodo de fechas que NO se solapa con ningún otro, por lo que sumamos el número de días entre FechaMin y FechaMax a una variable TotalComputo o algo parecido.

6. Procedemos de nuevo por el punto 3 con el último registro y las nuevas FechasMin y FechaMax con los respectivos valores de FechaInicio y FechaFinal

7. Al final de recorrer todos los registros, obtendrás el total de días trabajados en la variable TotalComputo.

... envío este hilo y ahora intentaré añadir otro con un código más concreto como ejemplo.
__________________
Piensa siempre en positivo !
Responder Con Cita
 



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
Fechas en sql carymar SQL 2 15-06-2006 18:35:10
Las horribles fechas, control de fechas Huer OOP 6 18-10-2005 19:11:49
Fechas jmlifi Varios 2 11-04-2005 16:40:22
fechas davidgaldo Conexión con bases de datos 4 02-03-2004 17:21:51
Fechas Novás Varios 1 20-10-2003 13:39:57


La franja horaria es GMT +2. Ahora son las 21:28:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi