For enums where you don't specify *any* of the values, you can get the number of allowed values by adding a last entry:
enum MONTH { Jan, . . ., Dec, cMONTHS }
Note that Jan = 0, now, and cMONTHS = 12.
Then, you get the month index by month % cMONTHS, which you can encapsulate in a function, if you want.
This tricks helps protect you when you add new enum values (suppose you start to work in Aztec 13 day trecenas, 20 per sacred year). You just add the new enum labels, and all the code still works unmodified.