Factor/GSoC/2009/Support more calendars

Mentor

Doug Coleman

Level

Beginning

Skills required

  • Willingness to learn Factor
  • Interest in calendars and world cultures
  • Generalizing existing code into a protocol

Existing work

Factor's current calendar library supports the Gregorian calendar and conversion between it and the Julian calendar.

Technical details

Not everyone in the world uses the Gregorian calendar for every facet of their life. In particular, support for Buddhist, Hebrew, Islamic, and Japanese calendars would be a good start. By implementing a generic calendar protocol, one could convert between the calendars and use dates in other formats than the Western-centric one Factor currently supports.

Calendar protocol

A calendar/localization protocol should support:

  • converting between days on different calendars
  • adding durations to calendar dates
  • displaying the calendar as expected by people who would use it
  • localization, such as taking into account if Monday or Sunday is the first day of the week
  • formatting of various dates as expected by followers of the calendars

Holidays in different calendars

Calculating holidays could potentially be useful. The algorithm for Easter can be implemented straight-fowardly using Factor's locals syntax of :>. Other holidays are on fixed days or only exist in certain cultures; a list of holidays would be useful to some people.

Benefit to the student

  • Learning about calendars
  • Implementing protocols and generalizing code in Factor

Benefit to the community

Commercial viability of applications based around or using calendars, such as planners, email clients, web applications, using different calendars for different markets.

Resources

http://www.amazon.com/Calendrical-Calculations-Nachum-Dershowitz/dp/0521702380/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1236990095&sr=8-1

This revision created on Sat, 14 Mar 2009 00:35:36 by erg