An excellent question my friend. According to ATS,
The calendar of Uposatha days is calculated using a complex traditional formula that is loosely based on the lunar calendar, with the result that the dates do not always coincide with the actual astronomical dates. To further complicate matters, each sect within Theravada Buddhism tends to follow a slightly different calendar
I don't have the slightest idea how these various calendars are formulated. All I can tell you is from my personal experience, these variations can lead to some confusion. Back in my Zen days (way back in May
) my wife and I thought it would be neat to check out what the local Buddhist vihāra was doing for Vesak. According to the ATS calendar, Vesak was to fall on May 28 of this year (2553 BE). So I called the vihāra, and guess what? According to them, Vesak had already been celebrated on May 21st! Also, if you've ever checked out Bhikku Samahita's site http://www.what-buddha-said.net
, he's got a calendar up of Uposatha days that are also somewhat different (Vesak fell on May 27th).
Like I said, the ATS calendar seems to be a good all purpose one. There's only been a few days when the Uposatha date was a day later than the actual moon phase. I may be wrong, but I don't think it really matters that much. What matters is that for those of us who choose to observe it, it can be a time to buckle down and study, meditate, and really work on our precepts. So according to my calendar, the next Uposatha day is this Friday, the 1st of October. Good enough for me!