Class Calendar

java.lang.Object
edu.wisc.ssec.mcidasv.util.Calendar

public final class Calendar extends Object
Approximations de quelques calculs astronomiques relatifs aux calendriers terrestres. Les différents cycles astronomiques (notamment le jour, le mois et l'année) ne sont pas constants. Par exemple, la longueur de l'année tropicale (le nombre moyen de jours entre deux équinoxes vernales) était d'environ 365,242196 jours en 1900 et devrait être d'environ 365,242184 jours en 2100, soit un changement d'environ 1 seconde. Cette classe permet de calculer la longueur d'une année ou d'un mois à une date spécifiée. Toutefois, il est important de noter que les intervalles de temps calculés par les méthodes de cette classe sont des moyennes. Pour une année en particulier, l'intervalle de temps d'un équinoxe vernale au prochain peut s'écarter de cette moyenne de plusieurs minutes.

Les calculs de la longueur de l'année tropicale sont basés sur les travaux de Laskar (1986). Les calculs de la longueur des mois synodiques sont basés sur les travaux de Chapront-Touze et Chapront (1988).On peut lire plus de détails au sujet des calendrier terrestre au site http://webexhibits.org/calendars/year-astronomy.html ainsi que http://www.treasure-troves.com/astro/TropicalYear.html.

Since:
2.0
Version:
3.00
Author:
Martin Desruisseaux (IRD)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final double
    Jour julien correspondant à l'époch du Java (1er janvier 1970 à minuit).
    private static final double
    Nombre de millisecondes dans une journée.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Do not allow instantiation of this class.
  • Method Summary

    Modifier and Type
    Method
    Description
    (package private) static DateFormat
    Returns a date format to be used by the command line tools.
    (package private) static double
    Retourne le nombre de siècles écoulés depuis le 1 janvier 2000 à midi.
    (package private) static double
    julianDay(long time)
    Computes the julian day.
    static double
    Returns the julian day of the given date.
    static void
    main(String[] args)
    Prints the length of a tropical year and a synodic month for the given date.
    static double
    Retourne la longueur du mois synodique.
    static double
    Retourne la longueur de l'année tropicale.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • MILLIS_IN_DAY

      private static final double MILLIS_IN_DAY
      Nombre de millisecondes dans une journée. Cette constante est utilisée pour convertir des intervalles de temps du Java en nombre de jours.
      See Also:
    • JULIAN_DAY_1970

      private static final double JULIAN_DAY_1970
      Jour julien correspondant à l'époch du Java (1er janvier 1970 à minuit). Cette constante est utilisée pour convertir des dates du Java en jour julien. La valeur julianDay(java.util.Date) du 1er janvier 2000 00:00 GMT est 2451544.5 jours. La valeur Date.getTime() du 1er janvier 2000 00:00 GMT est 10957 jours.
      See Also:
  • Constructor Details

    • Calendar

      private Calendar()
      Do not allow instantiation of this class.
  • Method Details

    • julianDay

      public static double julianDay(Date time)
      Returns the julian day of the given date. This is the number of days elapsed since January 1st, 4713 before J.C. at noon GMT. This is named after Julius Scaliger, not to be confused to the number of days elapsed since the beginning of the year (named after Julius Caesar).
      Parameters:
      time - The time for which to evaluate the julian day.
      Returns:
      Number of days elapsed since January 1st, 4713 before J.C. at noon GMT.
    • julianDay

      static double julianDay(long time)
      Computes the julian day.
      Parameters:
      time - The date in milliseconds elapsed since January 1st, 1970.
    • julianCentury

      static double julianCentury(Date time)
      Retourne le nombre de siècles écoulés depuis le 1 janvier 2000 à midi. Cette information est utilisée dans les formules de Laskar (1986) pour calculer la longueur d'une année tropicale, ainsi que par Chapront-Touze et Chapront (1988) pour la longueur d'un mois synodique.
    • tropicalYearLength

      public static double tropicalYearLength(Date time)
      Retourne la longueur de l'année tropicale. L'année tropicale est définie comme l'intervalle moyen entre deux équinoxes vernales (autour du 21 mars dans l'hémisphère nord). Il correspond au cycle des saisons. Cet intervalle de temps est une moyenne. Un cycle réel peut s'écarter de plusieurs minutes de cette moyenne. Notez aussi qu'une année tropicale n'est pas identique à une année sidérale, qui est le temps requis par la Terre pour compléter un orbite autour du Soleil. En l'an 2000, l'année tropicale avait une longueur d'environ 365,2422 jours tandis que l'année sidérale avait une longueur de 365,2564 jours.
      Parameters:
      time - A date in the year for which to compute the length.
      Returns:
      The tropical length of the given year.
    • synodicMonthLength

      public static double synodicMonthLength(Date time)
      Retourne la longueur du mois synodique. Le mois synodique est l'intervalle de temps moyen entre deux conjonctions de la lune et du soleil. Il correspond au cycle des phases de la lune. Cet intervalle de temps est une moyenne. Un cycle réel peut s'écarter de plusieurs heures de cette moyenne.
      Parameters:
      time - A date in the month for which to compute the length.
      Returns:
      The synodic length of the given month.
    • getDateFormat

      Returns a date format to be used by the command line tools.
    • main

      public static void main(String[] args) throws ParseException
      Prints the length of a tropical year and a synodic month for the given date. Cette application peut être lancée avec la syntaxe suivante: This application can be launch from the command line as below: where date is an optional argument specifying the date and time in the "yyyy-MM-dd HH:mm:ss" format, UTC time zone. If this argument is omitted, then the current time is used.
      Parameters:
      args - The command line argument.
      Throws:
      ParseException - If the date is not properly formatted.