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