2009/8/28 Ricardo Diniz <ricardo...@yahoo.com.br>: > Function ProximoDiaUtil (dData : TDateTime) : TDateTime; > begin > case DayOfWeek(dData) of > 1 : dData := dData + 1; > 2 : dData := dData + 7; > 3 : dData := dData + 6; > 4 : dData := dData + 5; > 5 : dData := dData + 4; > 6 : dData := dData + 3; > 7 : dData := dData + 2; > end; > ProximoDiaUtil := dData; > Result := dData; > end;
function ProximaSegundaHojeInclusive(VData : TDateTime) : TDateTime; begin Result := VData + ((9 - DayOfWeek(VData)) mod 7); end; ou function ProximaSegundaHojeNaoConta(VData: TDateTime): TDateTime; begin Result := VData + ((8 - DayOfWeek(VData)) mod 7) + 1; end; ou function UltimaSegundaContandoComHoje(VData : TDateTime) : TDateTime; begin Result := VData - ((5 + DayOfWeek(VData)) mod 7); end; Depende da necessidade. Joao Morais