PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 31/12/2013 12:34:26

carlob
Membre

Calendrier républicain

Bonjour,
je dois stocker des dates du calendrier républicain pour une saisie de documents historiques.
Es que on a des expériences dans cet endroit?
Idéalement je pense les stocker proprement dans le type date avec un champ auxiliare que spécifie le format (avec une conversion par une vue logique) ou simplement avec une regle dédie aux dates entre 24 novembre 1793 et 1er janvier 1806.
Mieux, peut être, que le réglage du locale français pour les dates prévoyait ce format avec une conversion automatique. Malhereusement c'est plus difficile à gérer hors de la France. Le calendrier républicaine etait utilisé aussi dans le Nord-ouest de l'Italie, le Belgique et ailleurs, mais c'est un autre problème.
Je suis pas capable de le faire, mais on a deja un point de départ pour une implementation en c avec le travail de Scott E. Lee ici: http://www.rosettacalendar.com/ (la source est ici: http://www.scottlee.com/sdncal20.zip) ou avec une fonction d'usager en PgPL/SQL derivé des implementation en javascript que on trouve sur les sites des génealogistes.
Merci pour toutes solutions ... et heureuse nouvelle année!
c

Hors ligne

#2 31/12/2013 15:37:16

damalaan
Membre

Re : Calendrier républicain

Bonjour,

Il est peut être possible de créer une fonction de conversion?
En fouillant sur le net, j'ai trouvé une page web, et en allanr voir dans le code source, il y a une fonction js qui fait la conversion.
Peut être est-ce reproductible en PL/pgSQL?

view-source:http://pierre.collenot.pagesperso-orange.fr/Issards_fr/outils/calrepub.htm#haut

il y a aussi ce site qui propose un fichier excel
http://forum.excel-pratique.com/excel/c … 66-10.html

Dernière modification par damalaan (31/12/2013 15:41:25)

Hors ligne

#3 31/12/2013 16:56:50

carlob
Membre

Re : Calendrier républicain

Merci beaucoup pour le lien aux fichiers Excel car la plus part de la sasie a lieu en Excel, aussi si il s'agit simplement de tables de réperage sans automatisme.
Interessante aussi la source de la macro VBA ici:
http://codes-sources.commentcamarche.ne … icaine-vba
J'ai deja vu plusieurs pages dediées a ce sujet comme celle de Pierre Collenot, une autre est ici:
http://www.poissons52.fr/histoire/revol … rier_v.php (voire en particulier le script http://www.poissons52.fr/histoire/revol … ndrier.js)
et autres avec des snippets très petites de code javascript.
On peut aussi evaluer la source de la fonction JDToFrench en php.

Hors ligne

#4 05/01/2014 19:33:22

SQLpro
Membre

Re : Calendrier républicain

ATTENTION : au sujet des calendrier pour la gestion des données historique il est nécessaire de maintenir une base de calendrier et non pas un seul calendrier. En effet si le cas du calendrier républicain est simple (un date ISO = une date républicaine) il n'en est pas de même dans le temps et dans l'espace... En effet, en 1582 a eu lieu la réforme du calendrier julien vers le calendrier grégorien et les dates ont divergées dans les différentes pays...
Extrait de mon ouvrage "SQL", 4e édition, collection Synthex, Pearson Education 2012 :

"
Réforme du calendrier julien :

Au cours de l’Histoire et compte tenu de la précision accrue des calculs astronomiques, on constate que le calendrier julien souffre d’un manque de précision : la durée de l’année julienne est trop longue d’un peu plus de 11 minutes (365,25 jours au lieu de 365,2422) et, au fil du temps, le calendrier finit par retarder de plusieurs jours. C’est le pape Grégoire XIII qui entreprend de réformer le calendrier. Pour cela, 10 jours furent supprimés de l’année 1582, où le 4 octobre fut immédiatement suivi par le 15 octobre. Pour éviter de nouvelles dérives, la surévaluation de l’année julienne fut corrigée par la suppression de 3 jours tous les 400 ans. On ignore donc la règle des années bissextiles les années séculaires, sauf pour celles qui sont divisibles par 400.

On a donc 97 années bissextiles par période de 400 ans et la durée moyenne d’une année grégorienne est 365 + 97/100, c’est-à-dire 365,2425 jours.

Cette réforme nécessaire n’a pas été adoptée à la même date dans tous les pays, par exemple :
•        L’Italie, l’Espagne, le Portugal et la Pologne sont passés du 4 octobre 1582 au 15 octobre 1582.
•        La France (sauf l’Alsace et la Lorraine) est passée du 9 décembre 1582 au 20 décembre 1582.
•        Le Luxembourg est passé du 14 décembre 1582 au 25 décembre 1582.
•        La Belgique (alors province des Pays-Bas) est passée du 21 décembre 1582 au 1er janvier 1583.
•        Le Valais Suisse est passé du 28 février 1655 au 11 mars 1655.
•        L’Alsace est passée du 4 février 1682 au 16 février 1682.
•        Zurich, Berne, Bâle et Genève sont passés du 31 décembre 1700 au 12 janvier 1701.
•        L’Angleterre est passée du 2 septembre 1752 au 14 septembre 1752.
•        La Lorraine est passée du 16 février 1760 au 28 février 1760.
•        L’URSS est passée du 31 janvier 1917 au 14 février 1917.

"

FIN DE CITATION

ATTENTION (bis) : certaines régions sont passées alternativement d'u pays à l'autre du fait des guerres. Il n'est donc pas rare dans certains village d'avoir des date rétrograde en continuité de l'état civil (les trous sont moins visibles...)


A +


Frédéric Brouard, alias SQLpro,  ARCHITECTE DE DONNÉES,  Expert langage SQL
Le site sur les SGBD relationnel et langage SQL   : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * *  Enseignant CNAM PACA, ISEN Toulon,  CESI Aix en Provence  * * * * *

Hors ligne

#5 07/01/2014 13:38:54

carlob
Membre

Re : Calendrier républicain

Merci beaucoup, Fréderic,
comme ça on a le locale du locale. Il s'agit de la possibilité de se référer à des espaces plus petits et des moments différents. C'est intéressant.
Pour le Calendrier républicain j'ai utilisé, plus simplement, une table de correspondance (corrigée, parce que celles en Excel portent éncore des erreurs), mais je pense comme vous que on a une troisième solution dans le locale: pour la France surtout (et la Belgique, pour les royaumes d'Italie entre 1799 et 1806 et avec des limites pas bien connu -- c'est une question de SIG historique a cette échelle...).
En fait, la question du calendrier grégorien est plus subtile, mais on peut continuer à stocker les dates indiquées dans les documents avec un erreur systematique à corriger par la suite, mais la necessité de stockage des dates républicaines porte le risque d'erreurs de conversion très frequents si on veut le stocker comme dates.
Comme toujours, les avis de SQLPro sont précieuses et donnent origine à reflections très utiles. Encore une fois, merci.

Hors ligne

#6 11/01/2014 19:59:17

SQLpro
Membre

Re : Calendrier républicain

En fait pour avoir travailler sur ce sujet il y a longtemps, pour une base historique, nous avions procédé comme suit :
1) une colonne "DATE_LITTERALE" VARCHAR(100) --> exemple : 13 brumaire de l'an II, 15 jours après la tempête de juin 1512...
2) une colonne "DATE_AN" SMALLINT (de 1 à 2014)
3) une colonne "DATE_MOIS" SMALLINT (de 1 à 12)
4) une colonne "DATE_JOUR" SMALLINT (de 1 à 31)
--> ces 3 dernières pour des dates partiellement connues, donc avec des NULL vectorisés : (DATE_AN NOT NULL AND DATE_MOIS NULL AND DATE_JOUR NULL) OR (DATE_AN NOT NULL AND DATE_MOIS NOT NULL AND DATE_JOUR NULL) OR (DATE_AN NOT NULL AND DATE_MOIS NOT NULL AND DATE_JOUR NOT NULL)
5) une colonne "DATE_GREGORIEN" NULLable (dates "actuelles) --> début si intervalle de temps
6) une colonne "DATE_GREGORIEN_MAX" NULLable (dates "actuelles) --> fin si intervalle de temps
7) une colonne "GEO_LOCALISATION" VARCHAR(250) données du lieu en littéral.

A +


Frédéric Brouard, alias SQLpro,  ARCHITECTE DE DONNÉES,  Expert langage SQL
Le site sur les SGBD relationnel et langage SQL   : http://sqlpro.developpez.com/
Modélisation de données, conseil, expertise, audit, optimisation, tuning, formation
* * * * *  Enseignant CNAM PACA, ISEN Toulon,  CESI Aix en Provence  * * * * *

Hors ligne

Pied de page des forums