You should only create 31 labels with text 1 to 31 and hide 31,30 or 29 according to the month in the year taking into account the leap year. If the year can be divided by 4 it is a leap year, but not if it is dividable by 100 and yet again it is if it is divisible by 400, so very simple to implement with a function taking a year as a parameter, and returning a number 1 or 0:
* On function 'IsLeapYear'
* Parameter 'year' (Number)
-> Functions: Set return value (year%4) = 0 ? (year%100) = 0 ? (year%400) = 0 ? 1 : 0 : 1 : 0
I think that, if you wait for the next stable release of C3, there is a new date plugin that will be able to tell you the week day of a given date (value 0 to 6) corresponding to mon, tue, wed...
Get the day (0-6) of the specified date according to universal time.
text.plugins.date.expressions.getUTCDay
Hope that helps