The answer to the question posed in your comment is "no, you don't have to". The changed script for the month attribute will happen automatically when you change the month attribute, even if you're already inside a changed script for the day.
However, the way you have your code written won't work. You loop advancing months but never actually update the day attribute. You need to update the day variable as you progress months; otherwise, the code will loop forever (day will forever be, for example, 32, and it will never satisfy a month's limit). The easiest way to do that, if the day value exceeds the current month's days, is to increment the month and then subtract the number of days in the old month from the current days value. That way the days value will decrease. (The months are "eating up" your days as you go along.)
You also don't need to differentiate between ">1" and "=1". It should be the same code. (And dividing and checking the int value seems a bit more awkward to me than simply seeing if the days value is greater than or equal to the month's number of days.)
Finally, your 0 check for days is a bit baffling to me. In that case, you set the days value to the number of days in the current month, which will simply satisfy your check for "=1" when the changed script kicks in, and it will continue to loop.
Assuming your day value ranges from 0 to days_in_month-1, then I think your days "changed" script can be as simple as:
days_in_month = ToInt (StringDictionaryItem (month_integer_to_day_integer, month_integer)
if (day_integer >= days_in_month) {
month_integer = month_integer+1
day_integer = day_integer - days_in_month
}
If your day value is in the range 1-days_in_month, then change the ">=" in the above to ">". And keep in mind that with a a 1-based day value, you can't use mod (%) at all unless you normalize it down to 0 before and then back up to 1-based afterwards, which is a real pain.
When you go to code this, I would really recommend you put some "msg"s in the various change scripts initially to watch what it's doing (and you could actually have answered your own question that way!

) What you're doing is a form of recursion by updating the day attribute while you're in the process of updating the day attribute. It can be cool when it works, but it can be a headache if not understood well enough.