Ver Mensaje Individual
  #19  
Antiguo 27-02-2007
Carlos Lesca Carlos Lesca is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Reputación: 0
Carlos Lesca Va por buen camino
Thumbs up

Cita:
Empezado por Lepe
Otra cosita:

Yo todo eso lo encapsularía dentro de un TObject (una clase). De tal forma que al añadir un periodo de fechas, a la misma vez que pongo a true el índice del array incrementaría la cuenta de una variable privada "diasTrabajados", de esta forma no tendremos que recorrer todo el array para saber lo dias totales, es decir:
Código Delphi [-] procedure anadir periodo(F1, F2:TDatetime);
var indice, trabajados :integer;
begin trabajados := trunc (F2 -F1) ; indice := trunc(f1-Fini); // como el indice del array empieza en cero, restamos a todo Fini.
// Fini será la variable declarada anteriormente, será una global.
for cont := indice to trabajados do begin if dias[cont-1] = false then inc(FDiasTrabajados);
// si estaba a false, no estaba computado ese día
// por tanto lo computamos ahora.
// Si estaba a true, significa que es una fecha solapada con otro periodo
// añadido anteriormente
dias[cont-1] := true; // -1 porque empieza en cero el array, ¿recuerdas?
end;
end;


Saludos
Interesante. Voy a verlo con mas detnimiento

Gracias.
Responder Con Cita