Word Year, Month, Day;
TDateTime dFecha;
AnsiString cDias[7] = {"Dom.","Lun.","Mar.","Mier.","Juev.","Vier.","Sab."};
DecodeDate(dMiFecha, Year, Month, Day);
if (Month == 12)
{
Year ++;
Month = 0;
}
dFecha = EncodeDate(Year, Month + 1, (Word)StrToInt("01")) - 1;
DecodeDate(dFecha, Year, Month, Day);
ShowMessage("útimo día del mes " + StrToDate(dMiFecha) + " es el " + Day + ", y es " + cDias[DayOfWeek(dFecha)];