Time intervals creation, printing, and some arithmetic. The
print() method calls these “time differences”.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
time1 - time2 difftime(time1, time2, tz, units = c("auto", "secs", "mins", "hours", "days", "weeks")) as.difftime(tim, format = "%X", units = "auto") ## S3 method for class 'difftime' format(x, ...) ## S3 method for class 'difftime' units(x) ## S3 replacement method for class 'difftime' units(x) <- value ## S3 method for class 'difftime' as.double(x, units = "auto", ...) ## Group methods, notably for round(), signif(), floor(), ## ceiling(), trunc(), abs(); called directly, *not* as Math(): ## S3 method for class 'difftime' Math(x, ...)
date-time or date objects.
an optional time zone specification to be used for the
conversion, mainly for
character string. Units in which the results are desired. Can be abbreviated.
character string. Like
character string or numeric value specifying a time interval.
character specifying the format of
an object inheriting from class
arguments to be passed to or from other methods.
difftime calculates a difference of two date/time
objects and returns an object of class
"difftime" with an
attribute indicating the units. The
Math group method provides
sign methods for objects of this class, and there are
methods for the group-generic (see
Ops) logical and arithmetic
units = "auto", a suitable set of units is chosen, the largest
"weeks") in which all the absolute
differences are greater than one.
Subtraction of date-time objects gives an object of this class,
units = "auto". Alternatively,
as.difftime() works on character-coded or numeric time
intervals; in the latter case, units must be specified, and
format has no effect.
Limited arithmetic is available on
"difftime" objects: they can
be added or subtracted, and multiplied or divided by a numeric vector.
In addition, adding or subtracting a numeric vector by a
"difftime" object implicitly converts the numeric vector to a
"difftime" object with the same units as the
object. There are methods for
sum (via the
group generic), and
building on the
"difftime" method for arithmetic, notably
The units of a
"difftime" object can be extracted by the
units function, which also has a replacement form. If the
units are changed, the numerical value is scaled accordingly. The
replacement version keeps attributes such as names and dimensions.
units = "days" means a period of 24 hours, hence
takes no account of Daylight Savings Time. Differences in objects
"Date" are computed as if in the UTC time zone.
as.double method returns the numeric value expressed in
the specified units. Using
units = "auto" means the units of the
format method simply formats the numeric value and appends
the units as a text string.
Units such as
"months" are not possible as they are not of
constant length. To create intervals of months, quarters or years
1 2 3 4 5 6 7 8 9 10 11 12
(z <- Sys.time() - 3600) Sys.time() - z # just over 3600 seconds. ## time interval between release days of R 1.2.2 and 1.2.3. ISOdate(2001, 4, 26) - ISOdate(2001, 2, 26) as.difftime(c("0:3:20", "11:23:15")) as.difftime(c("3:20", "23:15", "2:"), format = "%H:%M") # 3rd gives NA (z <- as.difftime(c(0,30,60), units = "mins")) as.numeric(z, units = "secs") as.numeric(z, units = "hours") format(z)