timeAlign
Alignment of Times

### Description

Aligns a time vector to a time unit specified as in timeSeq.

### Usage

    timeAlign(x, by="days", k.by=1, direction=1, week.align=NULL,
              holidays=timeDate())

### Arguments

x | a time/date object.
by | one of the following character strings, giving the units to align to: "milliseconds" "seconds" "minutes" "hours" "days", "weekdays" "bizdays" "weeks" "months" "quarters" "years"
k.by | a non-zero integer giving the number of the by units to align to. Ignored for "weekdays", "bizdays", and "weeks".
direction | either 1 or -1, to align to the next or previous time that is an integer number of the k.by * by units.
week.align | if not NULL, and by is "weeks", you can supply a character string (or an integer, 0 to 6 with 0 being Sunday) to specify a weekday to align to. The character string must be sufficient to make a unique case-insensitive match to the strings in timeDateOptions("time.day.name").
holidays | dates of holidays for business day alignment.

Value
returns a time object whose elements are moved up or down (according to direction), so that they lie on integer multiples of k.by * by units of time, starting from the beginning of the next larger time unit (for example, if by="days", then align to multiples of k.by days added to the first of the month. If by="hours", align to multiples of k.by hours since midnight).
Notes

- for "weeks", "weekdays", and "bizdays", k.by is assumed to be 1 and ignored.
- "weeks" without week.align is equivalent to "days".
- k.by should be a divisor of the number of by units in the next larger time unit, or NA values result.

See Also
timeSeq.
Examples

    x <- timeDate(c("2/11/1992 22:34", "7/8/1995 08:32"),
           format="%a %02m/%02d/%Y %02H:%02M")
    # move to beginning of month
    timeAlign(x,"months",direction=-1)
    # move to beginning of next month
    timeAlign(x,"months",direction=1)
    # move to next multiple of 3 hours
    timeAlign(x,"hours",3)
    # move to next Friday
    timeAlign(x,"weeks", week.align="Friday")

Package splusTimeDate version 6.1.5-18
Package Index