Ver Mensaje Individual
  #2  
Antiguo 16-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita