Last night Jay Leno presented an advertisement by someone a little bit confused about Mexican(-American) culture: it urged people to get ready for Cinco de Mayo on May 6th. "Cinco de Mayo" of course means "the fifth of May". In this case the confusion is real – Cinco de Mayo does not fall on the sixth of May, but in theory it could. "Cinco de Mayo" is the name of a holiday. The holiday is named after the day on which it falls, but the name is not itself a date. That means that we can imagine a future in which the holiday is still named "Cinco de Mayo" but falls on another date. It might be decided to celebrate on another day but to keep the traditional name, or Mexico might adapt a different calendar, one that had no month called "Mayo".
An example of this actually happening is the Japanese name for the last day of the year, which is 大晦日 o:misoka. In the current calendar the last day of the year is December 31st, in Japanese, the 31st day of the 12th month 十二月三十一日, but o:misoka actually means the 30th. 晦 stands for ミ十 miso "30" in classical Japanese. The name goes back to a calendar no longer in general use in which the twelfth month had only 30 days. Months were divided into three periods of ten days called 旬 dʒun. 大 o:, literally "big" in this context means the last day of the (last) ten day period, so the 30th. Thus, a holiday that currently falls on the 31st literally means "30th" due to a change in calendar.
A similar thing is reflected in the English month names. "October", "November", and "December" refer to the eighth, ninth, and tenth months. In the earliest known Roman calendar these were the last three months of the ten month year. In 713 BCE, however, the calendar was reformed and two new months were added at the beginning of the year. English and many other European languages have inherited the disparity between name and position created by this reform.