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);
for cont := indice to trabajados do
begin
if dias[cont-1] = false then inc(FDiasTrabajados);
dias[cont-1] := true; end;
end;
Saludos