Package edu.wisc.ssec.mcidasv.util
Class Calendar
java.lang.Object
edu.wisc.ssec.mcidasv.util.Calendar
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
FieldsModifier and TypeFieldDescriptionprivate 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 -
Method Summary
Modifier and TypeMethodDescription(package private) static DateFormat
Returns a date format to be used by the command line tools.(package private) static double
julianCentury
(Date time) 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
Prints the length of a tropical year and a synodic month for the given date.static double
synodicMonthLength
(Date time) Retourne la longueur du mois synodique.static double
tropicalYearLength
(Date time) Retourne la longueur de l'année tropicale.
-
Field Details
-
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
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 valeurjulianDay(java.util.Date)
du 1er janvier 2000 00:00 GMT est 2451544.5 jours. La valeurDate.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
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
Computes the julian day.- Parameters:
time
- The date in milliseconds elapsed since January 1st, 1970.
-
julianCentury
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
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
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
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.
-