Como supongo que no te vale con mirar el calendario para ver si es fin de mes... ;-)
TRUCO 486 de TRUCOMANIA:
procedure TForm1.Button1Click(Sender: TObject);
{Devuelve TRUE si la fecha dada es el ultimo dia del mes
Returns TRUE if the date is the last day of the month}
function EsFinDeMes( const QueDia: TDateTime ): boolean;
var
Nada, ElDia: word;
begin
{Hallamos el dia del mes de la fecha +1}
{Day of month of date+1}
DecodeDate ( QueDia + 1, Nada, Nada, ElDia );
{Si es 1, entonces es fin de mes}
{If is 1 then is end of month}
Result:=( ElDia=1 );
end;
begin
{Ejemplo de llamada:}
{A call Example:}
if EsFinDeMes(Now) then ShowMessage( 'Hoy es fin de mes!+
#10+
'Today is end of the month!');
end;
El funcionamiento es tan sencillo como hacer un DecodeDate de la fecha + 1, así obtendremos el dia siguiente al
que estamos inspeccionando; si es dia 1... significa que el dia en cuestión es final de mes.
No olvidemos que el formato TDateTime que usa Delphi utiliza la parte entera para anotar los dias transcurridos
desde 12/30/1899, asi que si le sumamos un 1 a la fecha... obtendremos el dia siguiente.
Saludos,
Peter Investment