Note utilisateur: 0 / 5

Etoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactivesEtoiles inactives
 

Trouver le jour julien en une formule simple ou jour julien en une ligne sans grand calcul et gratuit.

Programme ou code de calcul du jour julien est une demande fréquente sur Internet, nous le voyons au nombre de visites.

Quelques réflexions pas toujours évidentes.

Les formules c'est plus loin, mais ne vous précipitez pas... Il y a julien et julien.

Une Date.

Une date est le nom d'un instant, d'une époque. En astronomie et langue structurée, on parle d'Époque. C'est le mot réservé.

Nous la notons souvent jj-mm-aa en abrégé omettant les chiffres du siècle. Mais, pour le traitement, les dates sont toujours converties d'un poids fort à faible, parfois appelé notation internationale soit la suite AAAA-MM-JJ-HH-MM-SS-s...

Un calendrier est une façon de nommer les instants, les moments. Il possède un nom redondant appelé style et une partie variable, la date au sens large.

Les notations varient, deux notations différentes peuvent indiquer le même moment, deux notations identiques peuvent indiquer deux moments différents. C'est le style qui permet de discriminer la date.

Par exemple le 14 octobre 2015 existe en julien comme en grégorien, mais ce n'est pas le même moment indiqué par apparemment la même date.

On dira donc le 14 octobre 2015 style grégorien, ancien style ou de fait gothique ou julien, etc.

Un Calendrier.

Formellement, un calendrier est une [méthode de] division du Temps en périodes adaptées à la vie sociale, le plus souvent en relation avec un phénomène astronomique perçu ou religieux supposé.

Il peut aussi avoir relation avec un phénomène météorologique [moussons, crue, hivernage], politique ou historique [Règnes Révolutions] ou tout autre phénomène perçu.

Un calendrier universel supposerait une référence universelle, c'est à dire une perception valable pour tout point de l'Univers en Espace et en Temps non limitée à l'Humanité et ses composantes.

Il supposerait aussi que nous vivions, et tous les êtres en tous points de l'Univers, en direct et dans le même temps.

Ce n'est pas acquis car certaines expériences laissent supposer qu'il existe un décalage entre le perçu, qui nous semble instantané et le formulé. (1)

Ce n'est pas acquis non plus pour des êtres différents. (2)

  1. Ainsi un individu attentif ou impliqué, tel le Vigile d'un bateau, semble capable de percevoir un phénomène généré aléatoirement par un ordinateur avant même que les observateurs aient perçu le choix réalisé par cette machine. Cette expérience, réalisée des milliers de fois, semble démontrer que nous vivons, pour ainsi écrire, 'en différé', ce qui explique évidemment tous les dits 'miracles'. La Science à encore beaucoup à apprendre.

  2. Ainsi les témoignages fiables – de notoriétés – sur les phénomènes de type Objet non identifié présentent tous des ruptures de séquence, l'humain stipulant que tout lui semble 'comme un film mal monté'. Ces objets et leurs éventuels occupants ne seraient pas dans le même temps ce qui expliquerait le non respect apparent de nos lois de la physique déduites de notre perception solaire (et terrestre).

Algorithme et structure d'une date ou époque.

La façon de compter les instants, les règles syntaxiques en quelque sorte, est appelée algorithme du calendrier.

Algorithme est un faux ami. Il ne vient pas du grec 'algo' comme névralgie ni de rythme.

Algorithme est le nom de monsieur Al Khouaresmi, mathématicien du dixième siècle qui aimait les chiffres arabes.

Un algorithme signifie «Procédé de calcul utilisant un nombre fini de règles» ou plus exactement d'applications d'une règle.

Il ne faut pas confondre algorithme et structure. Les calendriers romains, julien ou grégoriens ont la même structure mais pas le même algorithme. Quant aux Calendes grecques, le calendrier donc, les Hellènes étant, selon l'Académie de Paris, des bébés en astronomie, elles n'existèrent jamais.

Le Temps.

Le but d'un calendrier est de fixer un événement dans le temps et plus souvent encore de mesurer l'écart de temps entre deux événements.

Le temps est une dimension, comme l'espace, une étendue indéfinie qui contient les choses. Ce n'est pas une grandeur physique c'est un contenant.

Ce contenant nous échappe car nous y sommes contenus, nous sommes inclus dans le référentiel.

Le calendrier sert à formaliser l'indication d'un moment.

Naturellement nous divisons la journée en quatre parties et parlons du début, du milieu ou de la fin de ces parties appelées matinées, après-midi, soirée ou nuit. Par exemple il est  venu en fin de matinée, en début de soirée, etc.

C'est ce que les Anciens appelaient le jour ou temps humain. La référence à l'année était pour eux le Temps Divin et ils les jugeaient équivalents, un jour ou an au Ciel, le jour sidéral, équivalent un jour sur Terre ou jour (rotation) terrestre.

Naturellement nous prenons une référence personnelle et souvent contextuelle : deux ans après mon premier flirt.

Contrairement aux idées reçues, ni vous ni moi ne comptons en Lune ou en saisons, le calendrier le plus usité autrefois était le calendrier des activités commençant, comme aujourd'hui, à la rentrée, c'est à dire septembre. En fait c'est le calendrier hébreux qui utilise le cycle C19 ou novendecim car Lune et Soleil se retrouvent après 19 années au même temps de leurs cycles.

Vous vous situez bien souvent par rapport à cette idée de travail, vous voyez la semaine non pas comme une nouvelle Lune mais comme le retour du travail.

Le Calendrier dit Vulgaire était celui des Laboureurs et lié au climat soit souvent les saisons sous nos latitudes [mais pas en Orient ou il y a, comme dans l'Égypte ancienne, trois saisons]. C'est celui des astrologues de nos jours.

Ce n'est pas universel, entre les tropiques il n'y a pas de rythme saisonnier ni hebdomadaire, tous les jours sont comme identiques ce que nous montrent indirectement les courbes de naissances, inexistantes autour de l''équateur.

Il faut donc ramener toutes ces perceptions à une donnée commune, universelle.

Pour cela on utilise l'heure universelle et le jour julien.

Jour Julien et Grégorien.

Le jour julien ne doit pas être confondu avec le calendrier de Jules César, julien ici vient du prénom du père de Scaliger, Jules, Scaliger étant l'inventeur du calendrier quelques mois après la réforme de Grégoire.

Scaliger a opéré comme Denys le Petit pour fixer le début du calendrier grégorien, il a fixé la date du début de calendrier en fonction de cycles qui lui indiquaient le premier janvier 4713 avant l'ère commune.

Attention ici encore car 4713 avant s'écrivent -4712 en Julien vu qu'il convient d'utiliser une année zéro avant l'an un pour avoir un nombre de jours correct.

Attention aussi que Jules César fut assassiné le mois même de l'entrée en vigueur de sa réforme et qu'elle ne vit le jour que plus tard et donc le calendrier julien n'a jamais été utilisé du temps de César.

Ces calendriers sont solaires, c'est une pratique qui vient des Égyptiens, beaucoup de calendriers sont soli-lunaires et notre calendrier en garde encore la structure.

C'est pour des raisons religieuses ou païennes, agricoles que l'on prend des cycles astraux. C'est aussi pour des raisons uranologiques, autrefois on établissait un lien entre l'univers extérieur et intérieur comme en chronobiologie à l'heure actuelle.

Dans le cas du calendrier classique de nos régions, on se règle exclusivement sur la marche de la Terre autour du Soleil, révolution qui se fait en 365 jours et presque un quart.

C'est pour cela que l'on compte trois fois 365 et une fois 366.

C'est Jules César qui introduisit cette réforme, mais elle existait déjà ailleurs et avant, l'histoire montre, de guerre en fléau, de régimes en religions, le retour ou la perte de certaines connaissances, comme la durée réelle d l'année.

Le Politique change souvent le calendrier pour augmenter la durée des mandats, par superstition populaire, pour se démarquer [calendrier républicain, impérial en Chine, etc.]. Autrefois et même maintenant, il changeait aussi la langue véhiculaire.

Malheureusement l'idée de compter un jour de plus toutes les quatre années fut mal comprise après la mort de César.

En effet les Romains comptaient un sur le jour de référence et ainsi trois jours avant les calendes ou début du mois c'est deux jours car on compte les calendes dans la série.

De fait les Pontifes romains ont appliqué la réforme en ajoutant un jour tous les trois ans et non tout les quatre avant une nouvelle réforme faite par Octave l'Auguste.

Il serait vain, au départ d'une date de style romain, de l'introduire dans votre ordinateur, le calcul serait exact et vous donnerait des jours juliens avec les positions ad hoc si nous cherchez un astre, mais vous pouvez et serez même très loin du jour 'César'. En outre, il existe un Delta t, c'est à dire que les jours normalisés ne sont pas compatibles avec la réalité astronomique/ Il faut travailler avec le C19, soit les jours lunaires (ou Circulum novemdecim ou une référence de 19 ans). Le calendrier des Hébreux, nous n'avons pas de religion, reste le plus adapté selon nos recherches astronomiques.

Seule la structure du calendrier de César est conservée en julien comme dans le calendrier grégorien.

La structure, c'est douze mois, des semaines de sept jours qui s'enchainent pour le nom du jour et un jour ajouté au mois de février, ce qui ne fut pas toujours le cas non plus à l'époque romaine, attention.

Le Julien.

La période dont s'est servi Scaliger est dite julienne et compte 7980 ans.

Qu'elle ait ou non une liaison avec les saisons et donc le mouvement de la Terre n'a guère d'importance, elle sert à calculer l'écart entre deux moments et non deux dates.

En astronomie on calcule des écarts avec précision et donc avec des millièmes ou plus encore des millionièmes de jours.

Une autre particularité de la période julienne c'est que le jour commence à midi et cette façon de calculer se justifie tant par les observations qui se faiaient de nuit où il ne fallait pas devoir changer les horloges en cours de travail que pour d'autres motifs.

C'est pour cela que, dans les éphémérides généralement données à zéro heure en temps universel, vous trouverez toujours des jours juliens avec une virgule, le premier janvier de l'an 2000 à zéro heure est le jour julien 2451544,5, le jour 2451545 commençant à midi.

Dans les éléments planétaires, vous aurez souvent ce nombre mais parfois un autre , prévoyez si vous incorporez votre routine dans un programme de calcul d'en extraire le jj brut sans traitement.

Formules.

Toutes les formules commencent par déstructurer le calendrier et déplacer le premier jour de l'an car julien et grégorien se rejoignent si l'année débute le premier mars.

Dans cette approche, les deux computs se lisent «l'année commence le premier jour de mars et se termine le dernier jour de février».

Il ne reste plus qu'un cas particulier à traiter, ce denier jour.

Les mois se comptent dès lors non de 1 à 12 mais de 3 à 14.

Puisque l'année est comptée pour 365,25, on divise le plus souvent et on traite le reste.

Avec ces notions les formules devraient être plus évidentes...

Première formule, assez classique, en javascript.

JJ = 367 * an - floor(7 * (an + floor((mois + 9) / 12)) / 4) + floor(275 * mois / 9) + Jour + heure / 24 [- 730531.5]

floor = entier, on ne prend que la partie avant la virgule. Cela peut être Int, ent, tronque, selon votre tableur ou logiciel.

Deuxième formule en pseudo code.

Pour une conversion Grégorien en julien uniquement.

JJ = 367 * an - Entier(1,75 * (Entier((mois + 9) / 12) + an )) + Entier(275 * mois / 9) - Entier(0,75 * (1 + Entier(0,01 * (Entier((mois - 9) / 7) + an)))) + jour + 1721028,5

Voici la formule agrée par le protocole dit VSOP qui est utilisé en astronomie.

Le choix grégorien ou julien est implicite. Toute date postérieure à la réforme de grégoire soit le quinze octobre mil cinq cent quatre-vingt deux ou MDLXXXII XV-X est considérée comme grégorienne, sinon c'est du julien.

Note. S'il est précisé Ancien Style, de Fait Gothique ou encore simplement julien vous devrez parfois corriger le résultat pour les dates de l'époque romaine de quelques jours.

BC signifie Before-avant et AD signifie After-après.

Attention. Les jours escamotés par la réforme et parfois interdits par certains programmes existent, ce sont des jours juliens. Il est sans objet de les interdire en grégorien puisque le calendrier grégorien débute après cette date, il n'est donc pas concerné.

  • Le format de date est précisé en début du programme.

Public Function JD_NUM_FOR(Dd_Mmm_Yyyy_BCAD)

' Version Alpha 0.003

' Compute astronomical JD number for any given date

' on either the Julian or Gregorian calendars.

' In this module, the Julian or Gregorian calendar mode is AUTOMATICALLY

' selected according to the given date. Any dates PRIOR to the date

' "15 OCT 1582" are considered Julian calendar dates and any dates

' from that date forward are considered Gregorian calendar dates.

'

' Examples of valid date strings are:

' "20 MAY 1977 AD" or "25 DEC 357 BC" or "4 JUL 1776"

' The "AD" is optional and implied if "BC" is not indicated.

'

' FUNCTION LEVEL 0 - No external function dependency.

'

' This function assumes that all input arguments are valid.

' NO error checking is done.

'

' Define the main function variables

Dim Date_String, Cal_Mode As String

Dim MMM, DD, Mm, YYYY, BCAD, JD

' Define random work variables

Dim Q, Q1

Dim Pointer As Integer

' Read the (Cal_Mode) from the (JG_Mode). This determines the calendar,

' Julian or Gregorian, to which the computed JD number applies.

' Only the 1st character of (JG_Mode) is used. If that character is "J"

' then Julian "J" mode is set, otherwise Gregorian "G" mode is set.

' This test is NOT case sensitive.

' If InStr(UCase(JG_Mode), "J") <> 0 Then Cal_Mode = "J" Else Cal_Mode = "G"

' ------------------------------------------------

' Read calendar date (Assumed to be a valid date).

' No error tests are done in this core version.

' Strip all spaces from within date string and force all

' text into upper case.

Date_String = Trim(UCase(Dd_Mmm_Yyyy_BCAD))

Q = ""

For Pointer = 1 To Len(Date_String)

Q1 = Mid(Date_String, Pointer, 1): If Q1 <> " " Then Q = Q & Q1

Next Pointer

Date_String = Q

' Read the absolute value of the day of the month (1 to 31).

' The value of the day should be the number beginning the date string

' such as "20 MAY 1977" which would return the value 20.

DD = Val(Q)

' Set (Pointer) to 1st character beyond the (Day) value. This

' should be the 1st character in the 3 letter month abbreviation

' or simply the 1st 3 letters in the month name and is NOT case

' sensitive.

Pointer = InStr(1, Q, DD) + Len(DD)

' Now get the 3 letters of the month abbreviation and then update the (Pointer)

' to aim at the following (Year) value.

MMM = Mid(Q, Pointer, 3): Pointer = Pointer + 3

' Determine the number of the month corresponding to the three letter

' (Month_Abbreviation). This abbreviation is simply the first three letters

' in the name of the month in English. The returned value will range from

' 1=January to 12=December. Zero is returned if no match is found

' for the abbreviation. This test is NOT case sensitive.

Mm = Int(1 + ((InStr(1, "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC", MMM) - 1) / 3))

' Read the value of the year (assumed positive 1 to 9999).

YYYY = Val(Mid(Q, Pointer, Len(Q)))

' Check for BC or AD - If NOT a BC year, then assume AD.

If InStr(Q, "BC") <> 0 Then BCAD = "BC" Else BCAD = "AD"

If BCAD = "BC" Then YYYY = (1 - YYYY)

' At this point the separate numerical date elements should be collected

' and ready to be used for any subsequent calendar computations. They are:

' (DD: 1 to 31) (MM: 1 to 12) (YYYY: 1 to 9999 BC|AD) (Cal_Mode: J|G)

' --------------------------------------------------------------------------

' Now compute (JD) number according to the old Julian calendar.

Q = Int((14 - Mm) / 12)

JD = DD + Int(367 * (Mm + (Q * 12) - 2) / 12) + Int(1461 * (YYYY + 4800 - Q) / 4) - 32113

' THIS IS A PATCH TO AUTOMATICALLY SWITCH INTO JULIAN CALENDAR

' MODE IF DATE IS PRIOR TO 15 OCT 1582 (JD = 2299161). THIS

' REPLACES THE OLD EXTERNAL CalMode SETTING.

If JD < 2299161 Then Cal_Mode = "J" Else Cal_Mode = "G"

' Apply Julian (JD) correction to convert to (JD) according

' to the Gregorian calendar if indicated by (Cal_Mode).

If Cal_Mode = "G" Then JD = JD - (Int(3 * Int((YYYY + 100 - Q) / 100) / 4) - 2)

' Return the final JD value for output as astronomical JD

' for 0h on date.

JD_NUM_FOR = JD - 0.5

End Function

Voilà, bonne journée et un like.


Copyright Guy Michel Arend - Uranologie 2017 2018 - nusquam credere semper quaerere - Merci de votre visite. Licence CC 3.0