floreal
Version:
Date formatting for the French Revolutionary calendar
226 lines (166 loc) • 5.96 kB
Markdown
# floreal
## Installation ##
Using git:
$ git clone https://github.com/seeschloss/floreal.git
Using npm:
$ npm install floreal
## Usage ##
### new floreal.Date(timespec) ###
Uses the native JavaScript Date object to parse *timespec* and takes any correctly formatted date. An `undefined` timespec means today.
```javascript
var Floreal = require('floreal').Date;
var coup = new Floreal("1799-11-09");
console.log('%s', coup);
```
will output:
18 brumaire, an VIII
### floreal.Date.toFullDateString() ###
Returns the full date in long form as "[day number] [month name], an [year in roman numerals]"
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-10-11")).toFullDateString());
```
will output:
18 brumaire, an VIII
### floreal.Date.toShortDateString() ###
Returns the full date in short form as "[day number]-[month number]-[year in roman numerals]"
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-10-11")).toShortDateString());
```
will output:
18-02-VIII
### floreal.Date.setYear(year) ###
Sets Republican year for the date *in roman numerals*
### floreal.Date.setYearDecimal(year) ###
Sets Republican year for the date in arabic numerals
### floreal.Date.setMonth(month) ###
Sets Republican month for the date. Month 1 is vendémiaire, both 0 and 13 represent complementary days.
### floreal.Date.setDay(day) ###
Sets Republican day for the date, first day of the month is 1.
### floreal.Date.setDate(year, month, day) ###
Sets the full Republican date.
```javascript
var Floreal = require('floreal').Date;
var date = new Floreal();
date.setDate(8, 2, 18);
console.log('%s', date.toFullDateString());
```
will output:
18 brumaire, an VIII
### floreal.Date.setMonth(month) ###
### floreal.Date.setDay(day) ###
### floreal.Date.year() ###
### floreal.Date.yearDecimal() ###
Displays year of the Republic as roman numerals or as a decimal number
```javascript
var Floreal = require('floreal').Date;
var coup = new Floreal("1799-11-09");
console.log('%s', coup.year());
console.log('%s', coup.yearDecimal());
```
will output:
VIII
8
### floreal.Date.isYearSextile() ###
Returns true if year is sextile, using actual sextile years for years I to XVI, and [Romme system](http://gallica.bnf.fr/ark:/12148/bpt6k826927/f328.image.r) for subsequent years.
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-11-09")).isYearSextile());
console.log('%s', (new Floreal("1803-08-18")).isYearSextile());
```
will output:
false
true
### floreal.Date.firstDayOfYear() ###
Returns the first day of the Republican year as a JavaScript Date object.
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-11-09")).firstDayOfYear().toDateString());
console.log('%s', (new Floreal("1803-08-18")).firstDayOfYear().toDateString());
```
will output:
Mon Sep 23 1799
Thu Sep 23 1802
### floreal.Date.dayOfYear() ###
Returns the day number within the year (from 1 to 365, or 366 for sextile years).
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-11-09")).dayOfYear());
```
will output:
48
### floreal.Date.month() ###
Returns the month number within the year. Complementary days are technically not part of any month, but for practical purposes are considered part of the 13th month.
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-11-09")).month());
```
will output:
2
### floreal.Date.isComplementaryDay() ###
Whether the day is a complementary day—the five or six days at the end of the year which are not part of any month.
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1800-09-20")).isComplementaryDay());
```
will output:
true
### floreal.Date.monthName() ###
Returns the (French) name of the month, in all lower case, or an empty string for complementary days.
```javascript
var Floreal = require('floreal').Date;
console.log('"%s"', (new Floreal("1799-11-09")).monthName());
console.log('"%s"', (new Floreal("1800-09-20")).monthName());
```
will output:
"brumaire"
""
### floreal.Date.dayOfMonth() ###
### floreal.Date.day() ###
Returns the day number within its month, from 1 to 30 (1 to 6 for complementary days).
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-11-09")).dayOfMonth());
console.log('%s', (new Floreal("1800-09-20")).dayOfMonth());
```
will output:
18
3
### floreal.Date.dayOfDecade() ###
### floreal.Date.dayOfWeek() ###
Returns the day number within its decade, from 1 to 10 (1 to 6 for complementary days).
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-11-09")).dayOfDecade());
console.log('%s', (new Floreal("1800-09-20")).dayOfDecade());
```
will output:
8
3
### floreal.Date.decade() ###
Returns the decade number within the month, from 1 to 3 (complementary days are reported as belonging to first decade).
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-11-09")).decade());
console.log('%s', (new Floreal("1800-09-20")).decade());
```
will output:
2
1
### floreal.Date.dayName() ###
Returns the name of the day (primidi, duodi... equivalent to monday, tuesday...). Complementary days have a different naming scheme and are named "jour de la vertu", "jour du génie", etc.
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-11-09")).dayName());
```
will output:
octidi
### floreal.Date.dayTitle() ###
Returns the French name of the object associated with the day (like saints on Christian calendars).
```javascript
var Floreal = require('floreal').Date;
console.log('%s', (new Floreal("1799-10-11")).dayTitle());
```
will output:
tournesol