Maven module :un.api : api-time :
Class : un.impl.timejvm.JulianMarchUtils
Extends/Implements : -
Subclasses : -

Classe utilitaire de constantes det d'algorithmes utilitaires relatives à
l'année julienne commençant en mars.

@author Samuel Andrés


Variables : MONTHS_PER_DECA_MENSUAL_CYCLE, DAYS_PER_DECA_MENSUAL_CYCLE, MONTHS_PER_PENTA_MENSUAL_CYCLE, DAYS_PER_PENTA_MENSUAL_CYCLE
Functions : dayOfYear, getMarchMonth0, getMarchDayOfMonth0, getMarchDayOfMonth, changeMonthOrder0, changeMonthOrder, translate, translate, translate, toDayOfYear


public int MONTHS_PER_DECA_MENSUAL_CYCLE

public int DAYS_PER_DECA_MENSUAL_CYCLE


Nombre de mois dans le cycle penta-mensuel.
Le cycle penta-mensuel démarre en mars. La première période du cycle est
constituée par les mois de mars, avril, mai, juin et juillet qui
totalisent 153 jours répartis selon le schéma : 31|30|31|30|31. La
seconde est constituée par les mois d'aout, septembre, octobre, novembre
et décembre selon un shéma identique.
public int MONTHS_PER_PENTA_MENSUAL_CYCLE


Nombre de jours dans le cycle penta-mensuel.
public int DAYS_PER_PENTA_MENSUAL_CYCLE



Jour de l'année étant donné le nombre de jours depuis l'époque de départ,
pour une année donnée, dans le calendrier grégorien en considérant le
début de l'année au 1er mars.

On retire :
- autant d'années de 365 jours,
- un jour supplémentaire chaque année divisible par quatre (années bissextiles ordinaires)

@param zeroDay
@param year
@return
public long dayOfYear (long zeroDay, long year)


Cette méthode permet de trouver le numéro du mois à partir du numéro du
jour dans l'année. Elle se base pour cela sur le cycle penta-mensuel :

31 30 31 30 31
mars | avril | mai | juin |juillet
aout |septembre|octobre|novembre|décembre
janvier| février

Le fait que février ne compte que 28 ou 29 jours en rompant ainsi le cycle
n'a pas d'importance dans la mesure où une nouvelle année commence en mars
suivant et cela ne perturbe donc pas le calcul.

Du fait de l'inégalité en nombre de jours des mois composant, le (+2)
sert à ajuster la transition entre avril et mai d'une part et entre juin
et juillet d'autre part.

@param marchDoy0 Jour de l'année commençant en mars (le permier mars
correspond au jour 0).
@return Le numéro du moi dans l'année commençant en mars (mars correspond
au mois 0).
public int getMarchMonth0 (int marchDoy0)


param  marchDoy0
param  marchMonth0
return
public int getMarchDayOfMonth0 (int marchDoy0, int marchMonth0)


param  marchDoy0
param  marchMonth0
return
public int getMarchDayOfMonth (int marchDoy0, int marchMonth0)


param  marchMonth0
param  offset
return
public int changeMonthOrder0 (int marchMonth0, int offset)


param  marchMonth0
param  offset
return
public int changeMonthOrder (int marchMonth0, int offset)


Construction d'une date à partir d'un jour dans l'année julienne
commençant en mars (le 1er mars est le jour 0) dans un calendrier dont
les mois sont identiques mais qui débute par un autre mois de l'année.

@param marchDoy0 Numéro du jour dans l'année commençant le 1er mars.
@param marchYear Numéro de l'année de mars.
@param offset Décalage du début de l'année (de 0 à 11 mois plus tôt).
@return La date exprimé dans l'année commençant
public YearMonthDayDate translate (int marchDoy0, long marchYear, int offset)


param  marchDoy0
param  marchYear
param  toMonth
return
public YearMonthDayDate translate (int marchDoy0, long marchYear, JulianMarchMonth toMonth)


@param date Une date de l'année commençant par mars repérée par l'année
et le jour de l'année, dans laquelle le premier jour de l'année est
numéroté 0.

@param toMonth
@return
public YearMonthDayDate translate (YearDayDate date, JulianMarchMonth toMonth)


param  zeroDay
return
public YearDayDate toDayOfYear (long zeroDay)