El mes siguiente y el anterior
Suponga que tiene un valor de tipo TDateTime representando a una fecha, y que quiere obtener la misma fecha, pero del mes siguiente o del anterior. En tal caso, no hay que liarse descomponiendo la fecha para adivinar el número de días del mes actual, ni nada semejante. Una oportuna función de la unidad SysUtils nos puede resolver directamente el problema:
function IncMonth(Fecha: TDateTime; Meses: Integer): TDateTime;
El parámetro Meses puede ser indistintamente positivo o negativo, para obtener una fecha anterior o posterior:
var
DentroDeUnMes: TDateTime;
HaceUnMes: TDateTime;
begin
DentroDeUnMes := IncMonth(Date, 1);
HaceUnMes := IncMonth(Date, -1);
// ...
end;
Recuerde, de todos modos, que para adicionar o substraer días de una fecha basta con la suma y resta aritmética, la de toda la vida, pues las fechas se representan internamente en la VCL en formato juliano.
|