获取本月第一天和最后一天的最简单的写法
// FirstDay,LastDay:TDateTime;

....

FirstDay := StrToDate(FormatDateTime('yyyy-MM-01', Now))
LastDay := IncMonth(FirstDay)-1;

....