Discordian date: Difference between revisions
Content added Content deleted
(Added missing </lang>) |
No edit summary |
||
Line 6: | Line 6: | ||
=={{header|Python}}== |
=={{header|Python}}== |
||
<lang python>import datetime |
<lang python>import datetime, calendar |
||
DISCORDIAN_SEASONS = ["Chaos", "Discord", "Confusion", "Bureaucracy", "The Aftermath"] |
DISCORDIAN_SEASONS = ["Chaos", "Discord", "Confusion", "Bureaucracy", "The Aftermath"] |
||
Line 12: | Line 12: | ||
def ddate(year, month, day): |
def ddate(year, month, day): |
||
today = datetime.date(year, month, day) |
today = datetime.date(year, month, day) |
||
is_leap_year = |
is_leap_year = calendar.isleap(year) |
||
if is_leap_year and month == 2 and day == 29: |
|||
⚫ | |||
⚫ | |||
try: |
|||
leap_day = datetime.date(year, 2, 29) |
|||
if leap_day == today: |
|||
⚫ | |||
except ValueError: |
|||
is_leap_year = False |
|||
⚫ | |||
if is_leap_year and day_of_year >= 60: |
if is_leap_year and day_of_year >= 60: |
||
day_of_year -= 1 # Compensate for St. Tib's Day |
day_of_year -= 1 # Compensate for St. Tib's Day |
||
season = day_of_year |
season, dday = divmod(day_of_year, 73) |
||
return "%s %d, YOLD %d" % (DISCORDIAN_SEASONS[season], dday + 1, year + 1166) |
|||
return "%s %d, YOLD %d" % (DISCORDIAN_SEASONS[season], (dday + 1), (year + 1166)) |
|||
</lang> |
</lang> |
Revision as of 06:19, 21 July 2010
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
Convert a given date from the Gregorian calendar to the Discordian calendar.
See Also
Python
<lang python>import datetime, calendar
DISCORDIAN_SEASONS = ["Chaos", "Discord", "Confusion", "Bureaucracy", "The Aftermath"]
def ddate(year, month, day):
today = datetime.date(year, month, day) is_leap_year = calendar.isleap(year) if is_leap_year and month == 2 and day == 29: return "St. Tib's Day, YOLD " + (year + 1166) day_of_year = today.timetuple().tm_yday - 1 if is_leap_year and day_of_year >= 60: day_of_year -= 1 # Compensate for St. Tib's Day season, dday = divmod(day_of_year, 73) return "%s %d, YOLD %d" % (DISCORDIAN_SEASONS[season], dday + 1, year + 1166)
</lang>