Try this.
SET EndDate = CASE
when test=31 THEN case1
when test=30 THEN case2
when test=29 THEN case3
else case4
end CASE;
...
SET SQLSTMT = 'call ProcedureDate2(' CONCAT BeginDate CONCAT ', ' CONCAT EndDate CONCAT ', ' CONCAT .97 CONCAT ')';
execute immediate SQLSTMT;
Not tested...