Yes, of course, it is only a 30 day month. Albeit, it is not because it knows the "END" of the month.. but the requested day is the 31st of the month.. adding 3 to the month will take it up to April and then calculates which is the highest possible day in that month is and if it is less than 31 then show that .. in this case 30.. otherwise will return the requested day..