Convert a POSIXt time to a Julian day

Description

Convert a POSIXt time to a Julian day, using the method provided in Chapter 3 of Meeus (1982). It should be noted that Meeus and other astronomical treatments use fractional days, whereas the present code follows the R convention of specifying days in whole numbers, with hours, minutes, and seconds also provided as necessary. Conversion is simple, as illustrated in the example for 1977 April 26.4, for which Meeus calculates julian day 2443259.9. Note that the R documentation for julian suggests another formula, but the point of the present function is to match the other Meeus formulae, so that suggestion is ignored here.

Usage

1
2
julianDay(t, year = NA, month = NA, day = NA, hour = NA, min = NA,
  sec = NA, tz = "UTC")

Arguments

t

a time, in POSIXt format, e.g. as created by as.POSIXct, as.POSIXlt, or numberAsPOSIXct. If this is provided, the other arguments are ignored.

year

year, to be provided along with month, etc., if t is not provided.

month

month, numbered with January being 1.

day

day in month, starting at 1.

hour

hour of day.

min

minute of hour

sec

second of hour

tz

timezone

Value

A Julian-Day number, in astronomical convention as explained in Meeus.

Author(s)

Dan Kelley

References

Meeus, Jean, 1982. Astronomical formuae for Calculators. Willmann-Bell. Richmond VA, USA. 201 pages

See Also

Other things related to astronomy: eclipticalToEquatorial, equatorialToLocalHorizontal, julianCenturyAnomaly, moonAngle, siderealTime, sunAngle

Other things related to time: ctimeToSeconds, julianCenturyAnomaly, numberAsHMS, numberAsPOSIXct, oce.as.POSIXlt, secondsToCtime, unabbreviateYear

Examples

1
2
3
t <- ISOdatetime(1977, 4, 26, hour=0, min=0, sec=0, tz="ET")+0.4*86400
jd <- julianDay(t)
cat(format(t), "is Julian Day", format(jd, digits=14), "\n")

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.