Hola ZiriusB.
Según entiendo el problema lo vas a tener los días lunes y domingo, en el primer caso tenes que restar 3 a la fecha y en el segundo 2 ya que en ambos el último día laboral anterior es viernes, en los casos restantes restar 1:
Código Delphi
[-]
...
implementation
uses DateUtils;
function LaboralAnterior(ADate: TDate): TDate;
begin
case DayOfTheWeek(ADate) of
DayMonday: ADate:= ADate-3;
DaySunday: ADate:= ADate-2;
else
ADate:= ADate-1;
end;
Result:= ADate;
end;
Ejemplo de llamada:
Código Delphi
[-]begin
DateTimePicker1.Date:= LaboralAnterior(StrToDate('20/02/2012'));
end;
Saludos.