local datetimevar startDate ;
local datetimevar endDate := DateTime(Year(now), Month(now),15,23,59,59);
if month(now) = 1 then
startDate := DateValue(Year(now) -1, 12, 15);
else
startDate := DateValue(Year(now), Month(now)-1,15);
should work in a record filter....if you need the variables in more than 1 location in the report, make the declaration shared or global instead of local, then you can create a formula that references them like:
shared datetimevar endDate;
....
endDate
HTH