GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  DATETIME::CALENDAR::FRENCHREVOLUTIONARY (3)

.ds Aq ’

NAME

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

CONTENTS

SYNOPSIS



  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 );



DESCRIPTION

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

HISTORICAL NOTES

    Preliminary Note

The documentation uses the word de\k:'(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 de\k:'\h |\n:ucennie.

    Description

The Revolutionary calendar was in use in France from 24 November 1793 (4 Frimaire II) to 31 December 1805 (10 Nivo\k:^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 de\k:'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:
Vende\k:'-> Vintagearious
Brumaire -> Fogarious
Frimaire -> Frostarious
Nivo\k:^se -> Snowous
Pluvio\k:^se -> Rainous
Vento\k:^se -> Windous
Germinal -> Buddal
Floreál -> 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.

METHODS

Since the week has been replaced by the de\k:' 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 DateTime.pm module.

    Constructors

o new(...)

Creates a new date object. This class accepts the following parameters:
o year

Year number, mandatory. Year 1 corresponds to Gregorian years late 1792 and early 1793.

o month

Month number, in the range 1..12, plus number 13 to designate the end-of-year additional days.

o day

Day number, in the range 1..30. In the case of additional days, the range is 1..5 or 1..6 depending on the year (leap year or normal).

o hour, minute, second

Decimal hour number, decimal minute number and decimal second number. The hour is in the 0..9 range, both other parameters are in the 0..99 range. These parameters cannot be specified with the sexagesimal time parameters abt_xxx (see below).

o abt_hour, abt_minute, abt_second

Sexagesimal hour number, sexagesimal minute number and sexagesimal second number. The hour is in the 0..23 range, both other parameters are in the 0..59 range. These parameters cannot be specified with the decimal time parameters (see above).

o locale

Only the values fr (French) and en (English) are allowed. Default is French. No other values are possible, even territory variants such as fr_BE or en_US.

o from_epoch( epoch => $epoch )

Creates a date object from a timestamp value. This timestamp is the number of seconds since the computer epoch, not the calendar epoch.

o now( )

Creates a date object that corresponds to the precise instant the method is called.

o from_object( object => $object, ... )

Creates a date object by converting another object from the DateTime suite. The preferred way for calendar to calendar conversion.

o last_day_of_month( ... )

Same as new, except that the day parameter is forbidden and is automatically set to the end of the month. If the month parameter is 13 for the additional days, the day is set to the end of the year, either the 5th or the 6th additional day.

o clone

Creates a replica of the original date object.

o set( .. )

This method can be used to change the local components of a date time, or its locale. This method accepts any parameter allowed by the new() method.

This method performs parameters validation just as is done in the new() method.

    Accessors

o year

Returns the year. %G in strftime.

o month

Returns the month in the 1..12 range. If the date is an additional day at the end of the year, returns 13, which is not really a month number. %f in strftime.

o month_0

Returns the month in the 0..11 range. If the date is an additional day at the end of the year, returns 12, which is not really a month number.

o month_name

Returns the French name of the month or its English translation. No other language is supported yet. For the additional days at the end of the year, returns jour comple\k:' the translation of additional day. %B in strftime.

Note: The English translations for the month names come from Thomas Carlyle’s book.

o month_abbr

Returns a 3-letter abbreviation of the month name. For the additional days at the end of the year, returns S-C, because these additional days were also known as the Sans-culottides. %b or %h in strftime.

o day_of_month, day, mday

Returns the day of the month, from 1..30. %d or %e in strftime.

o day_of_decade, dod, day_of_week, dow, wday

Returns the day of the decade, from 1..10. The dow, wday and day_of_week names are there for compatibility’s sake with DateTime, even if the word week is improper.

o day_name

Returns the name of the current day of the de\k:'%A in strftime.

o day_abbr

Returns the abbreviated name of the current day of the de\k:'%a in strftime.

o day_of_year, doy

Returns the day of the year. %j in strftime.

o feast, feast_short, feast_long, feast_caps

Returns the plant, animal, mineral or tool associated with the day. The default format is short. If requested, you can ask for the long format, with a jour de... prefix, or the caps format, with the first letter of the prefix and feast capitalized. Example: for 11 Vende\k:'we have:



   feast, feast_short  pomme de terre
   feast_long          jour de la pomme de terre
   feast_caps          Jour de la Pomme de terre



%Ej, %EJ, %Oj or %* in strftime.

Note: the English translation for the feasts comes mainly from Alan Taylor’s website Preserving the French Republican Calendar.

o ymd, dmy, mdy

Returns the date in the corresponding composite format. An optional parameter allows you to choose the separator between the date elements. %F in strftime.

o abt_hour, abt_minute, abt_min, abt_second, abt_sec

Return the corresponding time elements, using a sexagesimal scale. This is also known as the Anglo-Babylonian Time.

o hour, minute, min, second, sec

Return the corresponding time elements, using a decimal scale, with 10 hours per day, 100 minutes per hour and 100 seconds per minute. %H, %M and %S in strftime.

o abt_hms

Returns a composite string with the three time elements. Uses the Anglo-Babylonian Time. An optional parameter allows you to choose the separator (: by default).

o hms

Returns a composite string with the three time elements. Uses the decimal time. An optional parameter allows you to choose the separator (: by default).

o iso8601

Returns the date and time is a format similar to what ISO-8601 has specified for the Gregorian calendar.

o is_leap_year

Returns a true value if the year is a leap year, false else.

o decade_number, week_number

Returns the de\k:'number. %U, %V or %W in strftime.

o decade, week

Returns a 2-element list, with the year number and the decade number. Since the de\k:'is always aligned with a month and then with a year, the year element is always the same as the date’s year. Anyhow, this is done for compatibility with DateTime’s week method.

o utc_rd_values

Returns the current UTC Rata Die days, seconds and nanoseconds as a 3-element list. This exists primarily to allow other calendar modules to create objects based on the values provided by this object.

o jd, mjd

These return the Julian Day and Modified Julian Day, respectively. The value returned is a floating point number. The fractional portion of the number represents the time portion of the datetime.

o utc_rd_as_seconds

Returns the current UTC Rata Die days and seconds purely as seconds. This is useful when you need a single number to represent a date.

o local_rd_as_seconds

Returns the current local Rata Die days and seconds purely as seconds.

o strftime( $format, ... )

This method implements functionality similar to the strftime() method in C. However, if given multiple format strings, then it will return multiple elements, one for each format string.

See the strftime Specifiers section for a list of all possible format specifiers.

o epoch

Return the UTC epoch value for the datetime object. Internally, this is implemented epoch from DateTime, which in turn calls Time::Local, which uses the Unix epoch even on machines with a different epoch (such as Mac OS). Datetimes before the start of the epoch will be returned as a negative number.

Since epoch times cannot represent many dates on most platforms, this method may simply return undef in some cases.

Using your system’s epoch time may be error-prone, since epoch times have such a limited range on 32-bit machines. Additionally, the fact that different operating systems have different epoch beginnings is another source of bugs.

o on_date

Gives a few historical events that took place on the same date (day+month, irrespective of the year). These events occur during the period of use of the calendar, that is, no later than Gregorian year 1805. The related events either were located in France, or were battles in which a French army was involved.

This method accepts one optional argument, the language. For the moment, only en for English and fr for French are available. If not given, the method will use the date object’s current locale.

Not all eligible events are portrayed there. The events database will be expanded in future versions.

Most military events are extracted from Calendrier Militaire, a book written by an anonymous author in VII (1798) or so. I guess there is no longer any copyright attached. Please note that this is a propaganda book, which therefore gives a very biased view of the events.

    strftime Specifiers

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

The abbreviated day of decade name.

o %A

The full day of decade name.

o %b

The abbreviated month name, or ’S-C’ for additional days (abbreviation of Sans-culottide, another name for these days).

o %B

The full month name.

o %c

The date-time, using the default format, as defined by the current locale.

o %C

The century number (year/100) as a 2-digit integer.

o %d

The day of the month as a decimal number (range 01 to 30).

o %D

Equivalent to %m/%d/%y. This is not a good standard format if you have want both Americans and Europeans (and others) to understand the date!

o %e

Like %d, the day of the month as a decimal number, but a leading zero is replaced by a space.

o %f

The month as a decimal number (1 to 13). Unlike %m, a leading zero is replaced by a space.

o %F

Equivalent to %Y-%m-%d (the ISO 8601 date format)

o %g

Strictly similar to %y, since de\k:'are always aligned with the beginning of the year in this calendar.

o %G

Strictly similar to %Y, since de\k:'are always aligned with the beginning of the year in this calendar.

o %h

Equivalent to %b.

o %H

The hour as a decimal number using a 10-hour clock (range 0 to 9). The result is a single-char string.

o %I

The hour as a decimal number using the numbers on a clockface, that is, range 1 to 10. The result is a single-char string, except for 10.

o %j

The day of the year as a decimal number (range 001 to 366).

o %Ej

The feast for the day, in long format (jour de la pomme de terre). Also available as %*.

o %EJ

The feast for the day, in capitalised long format (Jour de la Pomme de terre).

o %Oj

The feast for the day, in short format (pomme de terre).

o %k

The hour (10-hour clock) as a decimal number (range 0 to 9); the result is a 2-char string, the digit is preceded by a blank. (See also %H.)

o %l

The hour as read from a clockface (range 1 to 10). The result is a 2-char string, the digit is preceded by a blank, except of course for 10. (See also %I.)

o %L

The year as a decimal number including the century. Strictly similar to %Y and %G.

o %m

The month as a decimal number (range 01 to 13).

o %M

The minute as a decimal number (range 00 to 99).

o %n

A newline character.

o %p

Either ‘AM’ or ‘PM’ according to the given time value, or the corresponding strings for the current locale. Noon is treated as ‘pm’ and midnight as ‘am’.

o %P

Like %p but in lowercase: ‘am’ or ‘pm’ or a corresponding string for the current locale.

o %r

The decimal time in a.m. or p.m. notation. In the POSIX locale this is equivalent to ‘%I:%M:%S %p’.

o %R

The decimal time in 10-hour notation (%H:%M). (SU) For a version including the seconds, see %T below.

o %s

The number of seconds since the epoch.

o %S

The second as a decimal number (range 00 to 99).

o %t

A tab character.

o %T

The decimal time in 10-hour notation (%H:%M:%S).

o %u

The day of the de\k:'as a decimal, range 1 to 10, Primidi being 1 and De\k:'being 10. See also %w.

o %U

The de\k:'number of the current year as a decimal number, range 01 to 37.

o %V

The decade number (French Revolutionary equivalent to the ISO 8601:1988 week number) of the current year as a decimal number, range 01 to 37. Identical to %U, since de\k:' are aligned with the beginning of the year.

o %w

The day of the de\k:'as a decimal, range 0 to 9, De\k:'being 0. See also %u.

o %W

The de\k:'number of the current year as a decimal number, range 00 to 37. Strictly similar to %U and %V.

o %y

The year as a decimal number without a century (range 00 to 99).

o %Y

The year as a decimal number including the century.

o %Ey

The year as a lowercase Roman number.

o %EY

The year as a uppercase Roman number, which is the traditional way to write years when using the French Revolutionary calendar.

o %z

The time-zone as hour offset from UTC. Required to emit RFC822-conformant dates (using %a, %d %b %Y %H:%M:%S %z). Since the module does not support time zones, this gives silly results and you cannot be RFC822-conformant. Anyway, RFC822 requires the Gregorian calendar, doesn’t it?

o %Z

The time zone or name or abbreviation, should the module have supported them.

o %*

The feast for the day, in long format (jour de la pomme de terre). Also available as %Ej.

o %%

A literal ‘%’ character.

REMARKS

    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.

    I18N

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 kokogiak.com (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

Support for this module is provided via the datetime@perl.org email list. See <http://lists.perl.org/> for more details.

Please enter bug reports at <http://rt.cpan.org/>

AUTHOR

Jean Forget <JFORGET@cpan.org>

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, <http://www.mongueurs.net/>.

SEE ALSO

    Software

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

    Books

Quid 2001, M and D Fre\k:'publ. Robert Laffont

Agenda Re\k:'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

<http://datetime.perl.org/>

<http://www.faqs.org/faqs/calendars/faq/part3/>

<http://zapatopi.net/metrictime.html>

<http://datetime.mongueurs.net/>

<http://www.kokogiak.com/frc/default.asp> (the link still exists, but it seems to no longer include stuff about the French Revolutionary calendar.)

<https://github.com/jhbadger/FrenchRevCal-ruby>

<http://en.wikipedia.org/wiki/French_Republican_Calendar>

LICENSE STUFF

Copyright (c) 2003, 2004, 2010, 2012, 2014 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 <http://www.perlfoundation.org/artistic_license_1_0> and <http://www.gnu.org/licenses/gpl-1.0.html>.

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 <http://www.gnu.org/licenses/> or write to the Free Software Foundation, Inc., <http://fsf.org>.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 DATETIME::CALENDAR::FRENCHREVOLUTIONARY (3) 2016-04-04

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.