As an example, my internal game calander has names for the hour / month / year etc (sort of like it's the Hour of the Crow in the Day of Celebration in the 42nd assention of the Dragon).
I've been keeping track of the names like this (from memory):
var/global/HOUR=21 calander/proc/Hour2Text() var/H=HOUR switch(H) if(1) return "Crow" if(2) return "Cat" if(3) return "Dog" // etc
Lists are definitely a better way to go. You can set up a list var for your calendar object that's shared by all the calendars, so it'd really be quite convenient--and faster. List indexes are numbered from 1 up, so your system will work nicely with that.
Lummox JR