blob: d1d2036996d86464e88330f935defb2bd7979a25 [file] [log] [blame]
<?xml version="1.0" encoding="ISO-8859-1"?>
<document>
<properties>
<title>Java date and time API - Gregorian calendar system</title>
<author>Stephen Colebourne</author>
</properties>
<body>
<section name="Gregorian calendar system">
<p>
The Gregorian calendar system is calendar system used by most of the modern business world.
It was first introduced on 1582-10-15 replacing the <a href="cal_julian.html">Julian</a> calendar.
Gregorian rules define a leap year as once every four years, except every 100, but including every 400.
</p>
<p>
The Gregorian chronology in Joda-Time is equivalent* to the ISO chronology, and uses
Gregorian rules for all time. Thus it is not historically accurate before 1583.
This also means that the Gregorian chronology does not correspond to the java class
<code>GregorianCalendar</code>. See <a href="cal_gj.html">GregorianJulian</a> for a
suitable replacement.
</p>
<p>
* The Gregorian and ISO chronologies do in fact differ slightly.
The Gregorian chronology defines a century as it is spoken,
thus 2005 is in the 21st century.
The ISO chronology defines a century as the first two digits of the year,
thus 2005 has a century field of 20.
</p>
<p>
References
<ul>
<li>Calendrical Calculations - Millenium Edition - ISBN 0521777526</li>
<li><a href="http://en.wikipedia.org/wiki/Gregorian_calendar">Wikipedia - Gregorian Calendar</a></li>
</ul>
</p>
</section>
<section name="Using Gregorian chronology in Joda-Time">
<p>
Within Joda-Time the Gregorian calendar system can be used by obtaining an
instance of <a href="apidocs/org/joda/time/chrono/GregorianChronology.html">GregorianChronology</a>.
This is normally created using the factory method
<a href="apidocs/org/joda/time/chrono/GregorianChronology.html#getInstance()">GregorianChronology.getInstance()</a>.
This is then passed into the constructors of the main date and time classes.
</p>
<source>
// setup date object for midday on Christmas 2004
Chronology chrono = GregorianChronology.getInstance();
DateTime dt = new DateTime(2004, 12, 25, 12, 0, 0, 0, chrono);
</source>
</section>
</body>
</document>