jul is used to create
jul (julian date)
objects, which are useful for date calculations.
asJul coerce an object to class "jul", the
difference being that
as.jul calls the constructor
asJul simply forces the class of its argument to be "jul"
without any checking as to whether or not it makes sense to do so.
is.jul tests whether an object inherits from class "jul".
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
jul(x, ...) ## S3 method for class 'Date' jul(x, ...) ## S3 method for class 'IDate' jul(x, ...) ## S3 method for class 'ti' jul(x, offset = 1, ...) ## S3 method for class 'yearmon' jul(x, offset = 0, ...) ## S3 method for class 'yearqtr' jul(x, offset = 0, ...) ## Default S3 method: jul(x, ...) as.jul(x, ...) asJul(x) is.jul(x)
object to be tested (
other args to be passed to the method called by the generic
jul's for any pair of valid dates differ by the number of
days between them. R's
Date class defines a Date as a number
of days elapsed since January 1, 1970, but
jul uses the
encoding from the Numerical Recipes book, which has Jan 1, 1970
= 2440588, and the code for converting between ymd and
representations is a straightforward port of the code from that tome.
Adding an integer to, or subtracting an integer from a
results in another
jul, and one
jul can be subtracted
from another. Two
jul's can also be compared with the
==, !=, <. >, <=, >=).
jul class implements methods for a number of generic
jul is a generic function with specialized methods to handle
ti objects. A recent addition is a method to
IDate objects as defined in the data.table
The default method (
jul.default) deals with character
as.Date on it. Otherwise, it proceeds as follows:
x is numeric,
isYmd is used to see if it could be
yyyymmdd date, then
isTime is called to see if
be a decimal time (a number between 1799 and 2200). If all else fails,
as.Date(x) is called to attempt to create a
that can then be used to construct a
asJul return objects with class "jul".
jul constructs a
jul object like
jul with no arguments returns the
jul for the current day.
The return value from
asJul is not guaranteed to be a valid
jul object. For example,
asJul("a") will not throw an
error, and it will return the string "a" with a class attribute "jul",
but that's not a valid julian date.
The Julian calendar adopted by the Roman Republic was not accurate with respect to the rotational position of the Earth around the sun. By 1582 it had drifted ten days off. To fix this, Pope Gregory XIII decreed that the day after October 4, 1582 would be October 15, and that thereafter, leap years would be omitted in years divisible by 100 but not divisible by 400. This modification became known as the Gregorian calendar. England and the colonies did not switch over until 1752, by which time the drift had worsened by another day, so that England had to skip over 11 days, rather than 10.
The algorithms used in
ymd2jul cut over at
the end of October 1582.
Press, W. H., Teukolsky, S. A., Vetterling, W. T., and Flannery, B. P. (1992). Numerical Recipes: The Art of Scientific Computing (Second Edition). Cambridge University Press.
1 2 3 4 5
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.