RevCal.php

Petites libraires de calendriers basés sur celui révolutionnaire. Accéder au code.

HomaranoCalendar

HomaranoCalendar est une librairie PHP permettant d'afficher des dates dans le calendrier homarano, un calendrier custom fusionnant des aspects du calendrier revolutionnaire et du calendrier holocène (qui met à -10000 l'an zéro). Le nom est repris du nom de la philosophie Homarano ("membre de l'humanité") créé par Zamenhof, le créateur de l'espéranto. Ce calendrier est du coup une petite expérientation pour tenter de retirer les côtés très "franco-français" du calendrier républicain.

Il présente les différences suivantes avec le calendrier révolutionnaire :

Différence Explication
Année de départ Le calendrier homarano commence à l'an -10000 avant J.C., soit vers le début supposé de l'ère holocène
Durée de la semaine La semaine dure 6 jours et non 10, chaque mois ayant 5 semaine de 6 jours au lieu de 3 de 10. Le but est de se rapprocher des cycles existant, et de la durée des jours complémentaires (qui soit à 5 ou 6)
Noms des mois Les noms des mois sont inspiré de ceux coréen/japonais/etc, basé sur des nombres. Ils sont repris des nombres de l'esperanto et francisé : "Unumonate", "Dumonate", "Trimonate", "Quarmonate", "Quinmonate", "Sesmonate", "Sepmonate", "Ocmonate", "Nomonate", "Decmonate", "Elmonate" et "Dozmonate"
Jours complémentaire La semaine complémentaire à un nom : "Pax", inspiré de celle du calendrier éponyme. Comme Pax ne contient qu'une semaine, il n'y a pas d'obligation de marquer un nombre de jour et on peut juste dire "Primidi Pax"
Éphéméride Pas de liste d'éphéméride pour le moment.

Le calcul de date est fait en rajoutant 1930732 jours au jours julien afin de correspondre au "22 Septembre -10000", et de faire que le 1 Vendémiaire de l'an 1 révolutionaire corresponde au 1er Vendémiaire 1972. Cela fait que l'année correspond à l'année grégorienne jusqu'au début du moins de nivose.

Nous sommes le Duodi 20 Dozmonate 12025

Utiliser la librairie

La librairie est constituée d'un fichier unique revcal-homarano.php, qui peut ensuite être require pour pouvoir être utilisé.

require "revcal-homarano.php";
$calendar = new Homarano\HomaranoCalendar($year, $month, $day); // Utiliser les années/mois/jours

Déclarer une date

Pour déclarer une date, vous avez plusieurs manière suivant votre besoins. Voici quelques exemples de déclarations pour pouvoir utiliser la classe :

Homarano\HomaranoCalendar::today(); // Créer une date à la date du jour
Homarano\HomaranoCalendar::fromJulianDay($juliandaycount); // Permet de créer une date à partir du jour julien (surtout utilisé en interne)
Homarano\HomaranoCalendar::fromString($str); // Parse des chaines de caractère genre 11934-11-02
Homarano\HomaranoCalendar::fromGregorian($y, $m, $d) // Créer une date révolutionnaire à partir d'une date Gregorienne

Résultat de Homarano\HomaranoCalendar::today() : 12025-12-20

Convertir une date

Entrez une date grégorienne pour ensuite avoir la version révolutionnaire de la date :)

Récupérer le mois/jours/années/etc

HomaranoCalendar->__toString(): 12025-12-20
HomaranoCalendar->getDay(): 20
HomaranoCalendar->getMonth(): 12
HomaranoCalendar->getYear(): 12025
HomaranoCalendar->getYearDay(): 350
HomaranoCalendar->getWeek(): 58
HomaranoCalendar->isLeapYear(): non

Formatter une date

$romeCalendar->format($format); // Formatte une date
$romeCalendar->formatWithComplementaryFormat($format, $complementaryFormat); // Format avec deux format
// Un jour les jours normaux, et l'autre pour les jours complémentaires;

Vous pouvez ensuite utilisez les caractères suivants.

Character Description Exemple
\\ Permet d'échapper toutes les lettres jusqu'au prochain caractère spécial
Days -- --
D A textual representation of a day, three letters Pri-Dec
j Day of the month without leading zeros 1-30
l (lowercase 'L') A full textual representation of the day of the "week" Primidi-Decadi
N ISO-8601-like numeric representation of the day of the "week" 1(primidi)-10(Decadi)
w Numeric representation of the day of the week 0(primidi)-9(decadi)
z The day of the year (starting from 0) 0 through 365
c The number of the complementary day Premier jour complémentaire
Week -- --
W Revolutionar "week", which have 10 days 1-36
Month -- --
F A full textual representation of a month, such as January or March Unumonate to Pax
m Numeric representation of a month, with leading zeros 01 to 13 (Pax)
M A short textual representation of a month, three letters Unu to Pax
n Numeric representation of a month, without leading zeros 1 to 13
t Number of days in the given month 30
Year -- --
L Whether it's a leap year 1 if it is a leap year, 0 otherwise.
o Same as Y (no difference between Y in week) See Y
Y A full numeric representation of a year, 3 or 4 digits 224
y A two digit representation of a year 23

Format prédéfini :

A noter que les formats complémentaire ne marchent pas bien en dehors des jours complémentaires, étant fait spécifiquement pour eux.

Homarano\HomaranoCalendar::FORMAT_JOUR_MOIS ("j F"): 20 Dozmonate
Homarano\HomaranoCalendar::FORMAT_SIMPLE ("l j F"): Duodi 20 Dozmonate
Homarano\HomaranoCalendar::FORMAT_COMPLET ("l j F Y"): Duodi 20 Dozmonate 12025
Homarano\HomaranoCalendar::FORMAT_COMPLEMENTAIRE ("l F"): Duodi Dozmonate
Homarano\HomaranoCalendar::FORMAT_COMPLEMENTAIRE_COMPLET ("l F Y"): Duodi Dozmonate 12025