This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
My idea for a programming diversion is to make an international calendar based on the Moon's position in the sky. The Moon revolves around the world 13 times a year and the average period that it takes to change the Moon's face is almost 28 days. 13 * 28 = 364 days. One day is needed to account for the earth's rotation about the Sun. The 28 days could be divided into 4 weeks with 7 days each.
This layout is like a deck of cards. Ace through King being the 13 months and the four suits (spade, heart, diamond, and club) being the 4 weeks or 52 weeks in a year.
There are also 2 jokers in a deck of cards. One would be used every year at the end to make the last day of each year. The other joker would be used as the next to last day of the year every 4 years to account for leap year.