View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Jean Forget > DateTime-Calendar-FrenchRevolutionary > DateTime::Calendar::FrenchRevolutionary



Annotate this POD


Open  0
View/Report Bugs
Module Version: 0.14   Source  


DateTime::Calendar::FrenchRevolutionary - Dates in the French Revolutionary Calendar


  use DateTime::Calendar::FrenchRevolutionary;

  # Use the date "18 Brumaire VIII" (Brumaire being the second month)
  $dt = DateTime::Calendar::FrenchRevolutionary->new( year  => 8,
                                         month =>  2,
                                         day   => 18,

  # convert from French Revolutionary to Gregorian...
  $dtgreg = DateTime->from_object( object => $dt );

  # ... and back again
  $dtrev = DateTime::Calendar::FrenchRevolutionary->from_object( object => $dtgreg );


DateTime::Calendar::FrenchRevolutionary implements the French Revolutionary Calendar. This module implements most methods of DateTime; see the DateTime(3) manpage for all methods.


Preliminary Note

The documentation uses the word décade (the first "e" having an acute accent). This French word is not the translation of the English word "decade" (ten-year period). It means a ten-day period.

For your information, the French word for a ten-year period is décennie.


The Revolutionary calendar was in use in France from 24 November 1793 (4 Frimaire II) to 31 December 1805 (10 Nivôse XIV). An attempt to apply the decimal rule (the basis of the metric system) to the calendar. Therefore, the week disappeared, replaced by the décade. In addition, all months have exactly 3 decades, no more, no less.

At first, the year was beginning on the equinox of autumn, for two reasons. First, the republic had been established on 22 September 1792, which happened to be the equinox, and second, the equinox was the symbol of equality, the day and the night lasting exactly 12 hours each. It was therefore in tune with the republic's motto "Liberty, Equality, Fraternity". But it was not practical, so Romme proposed a leap year rule similar to the Gregorian calendar rule.

In his book The French Revolution, the XIXth century writer Thomas Carlyle proposes these translations for the month names:

Vendémiaire -> Vintagearious
Brumaire -> Fogarious
Frimaire -> Frostarious
Nivôse -> Snowous
Pluviôse -> Rainous
Ventôse -> Windous
Germinal -> Buddal
Floréal -> Floweral
Prairial -> Meadowal
Messidor -> Reapidor
Thermidor -> Heatidor
Fructidor -> Fruitidor

Each month has a duration of 30 days. Since a year lasts 365.25 days (or so), five additional days (or six on leap years) are added after Fructidor. These days are called Sans-Culottides. For programming purposes, they are considered as a 13th month (much shorter than the 12 others).

There was also an attempt to decimalize the day's subunits, with 1 day = 10 hours, 1 hour = 100 minutes and 1 minute = 100 seconds. But this reform was put on hold after two years or so and it never reappeared.

Other reforms to decimalize the time has been proposed during the last part of the XIXth Century, but these reforms were not applied too. And they are irrelevant for this French Revolutionary calendar module.


Since the week has been replaced by the décade, the corresponding method names still are decade_number, day_of_decade, etc. English speakers, please note that this has nothing to do with a 10-year period.

The module supports both Anglo-Babylonian time (24x60x60) and decimal time. The accessors for ABT are abt_hour, abt_minute, abt_second and abt_hms, the accessors for decimal time are hour, minute, second and hms. The strftime and iso8601 methods use only decimal time. The ABT accessors are provided to be historically correct, since the decimal time reform was never put in force. Yet, emphasis is on decimal time because it is more fun than sexagesimal time, which anyhow can be obtained with the standard Gregorian module.



strftime Specifiers

The following specifiers are allowed in the format string given to the strftime() method:


Time Zones

Only the floating time zone is supported. Time zones were created in the late XIXth century, at a time when fast communication (railroads) and instant communication (electric telegraph) made it necessary. But at this time, the French Revolutionary calendar was no longer in use.

Leap Seconds

They are not supported.


For the moment, only French and English are available. For the English translation, I have used Thomas Carlyle's book and Alan Taylor's web site at (see below). Then, I have checked some translations with Wikipedia and Jonathan Badger's French Revolutionary Calendar module written in Ruby.

Some feast names are not translated, other's translations are doubtful (they are flagged with a question mark). Remarks are welcome.


Support for this module is provided via the email list. See for more details.

Please enter bug reports at


Jean Forget <>

based on Dave Rolsky's DateTime module, Eugene van der Pijll's DateTime::Calendar::Pataphysical module and my prior Date::Convert::French_Rev module.

The development of this module is hosted by Les Mongueurs de Perl,



date(1), strftime(3), perl(1), DateTime(3), DateTime::Calendar::Pataphysical(3), Date::Convert::French_Rev

calendar/cal-french.el in emacs-21.2 or later or xemacs 21.1.8


Quid 2001, M and D Frémy, publ. Robert Laffont

Agenda Républicain 197 (1988/89), publ. Syros Alternatives

Any French schoolbook about the French Revolution

The French Revolution, Thomas Carlyle, Oxford University Press

Calendrier Militaire, anonymous

Histoire de l'heure en France, Jacques Gapaillard, publ. Vuibert -- ADAPT

Internet (the link still exists, but it seems to no longer include stuff about the French Revolutionary calendar.)


Copyright (c) 2003, 2004, 2010, 2012, 2014, 2016 Jean Forget. All rights reserved. This program is free software. You can distribute, modify, and otherwise mangle DateTime::Calendar::FrenchRevolutionary under the same terms as perl 5.16.3.

This program is distributed under the same terms as Perl 5.16.3: GNU Public License version 1 or later and Perl Artistic License

You can find the text of the licenses in the LICENSE file or at and

Here is the summary of GPL:

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see <> or write to the Free Software Foundation, Inc.,

syntax highlighting: