Type: Package
Title: Standard Date Calculations for Business
Version: 0.2.0
Author: Mick Mioduszewski [aut, cre]
Maintainer: Mick Mioduszewski <mick@mioduszewski.net>
Description: Get a current financial year, start of current month, End of current month, start of financial year and end of it. Allow for offset from the date.
License: MIT + file LICENSE
URL: https://mickmioduszewski.github.io/busdater/, https://github.com/mickmioduszewski/busdater/
BugReports: https://github.com/mickmioduszewski/busdater/issues
Imports: lubridate
Suggests: covr, knitr, rmarkdown, testthat
VignetteBuilder: knitr
Encoding: UTF-8
LazyData: true
RoxygenNote: 6.1.1
NeedsCompilation: no
Packaged: 2019-01-30 18:28:25 UTC; mickmioduszewski
Repository: CRAN
Date/Publication: 2019-01-30 20:43:21 UTC

busdater: Standard Date Calculations for Business

Description

Get a current financial year, start of current month, End of current month, start of financial year and end of it. Allow for offset from the date.

Details

Working with business dates can be cumbersome and error prone. This package aims to make it easier, by providing functionality, to get financial year, calendar year and month calculations. It returns start and end of the business periods.

get_fy

Get financial year, possibly with an offset period

FY

Deprecated in favour of get_fy()

get_boundary

Get date's business period boundary.

period_boundaries

Deprecated in favour of get_boundary()

Author(s)

Maintainer: Mick Mioduszewski mick@mioduszewski.net

See Also

Useful links:


Get a financial year (deprecated).

Description

FY() is a deprecated function. It returns the current financial year. It also returns financial year based on parameter dates, or financial year based on a parameter dates and offset_period in years.

Usage

FY(date = Sys.Date(), offset_period = 0,
  optFYstart = getOption("busdaterFYstart", default = "07-01"))

Arguments

date

A date vector for which financial year is required. Date must be POSIXct or POSIXlt or Date objects.

offset_period

A positive or negative number coercible to integer to shift the year by, e.g. in the case of FY, -1 for previous year, 1 for next year. More generally in page_boundaries function it is a number of periods of a specified period type

optFYstart

A string in the format of "MM-DD" representing the start of financial year, e.g. "01-01" for 1st of January or "07-01" for 1st of July. This package caters for financial years that have a fixed start date. It does not cater for moving dates e.g. last Friday of September.

Value

An integer vector containing the current financial year if offset offset_period is 0, otherwise add the offset offset_period in years.

See Also

Other business date functions: get_boundary, get_fy, period_boundaries

Examples

FY() # deprecated function returns the current financial year as integer

dt <- as.Date(c("01-01-2018", "15-12-2017"), "%d-%m-%Y")
FY(date = dt[1])
FY(date = dt)

FY(offset_period = 1) ## return the next financial year as integer
FY(date = dt[1], offset_period = 1)
FY(date = dt, offset_period = 1)

FY(offset_period=-1) ## return the previous financial year as integer
FY(date = dt[1], offset_period = -1)
FY(date = dt, offset_period = -1)


## Not run: 
FY("a") ## will fail because dates are expected.

## End(Not run)



Deprecated functions in busdater

Description

These functions still work but will be removed (defunct) in the next version.

Details


Get date's business period boundary.

Description

The get_boundary will shift the input date vector by a number of months and years i.e. date + offset_period * offset_type. It will handle the typical business date arithmetic.

Usage

get_boundary(date = Sys.Date(), offset_period = 0,
  offset_type = "year", bus_period = "FY", boundary = "1st day",
  opt_fy_start = getOption("busdaterFYstart", default = "07-01"))

Arguments

date

A date vector for which financial year is required. Date must be POSIXct or POSIXlt or Date objects.

offset_period

A positive or negative number coercible to integer to shift the year by, e.g. in the case of get_fy, -1 for previous year, 1 for next year. More generally in page_boundaries function it is a number of periods of a specified period type

offset_type

It is either "month" or "year"

bus_period

It is either "get_fy" for financial year, "CE" for calendar year or "M" for month

boundary

Either "1st day" for the first day of the period or "last day" for the end of the period.

opt_fy_start

A string in the format of "MM-DD" representing the start of financial year, e.g. "01-01" for 1st of January or "07-01" for 1st of July. This package caters for financial years that have a fixed start date. It does not cater for moving dates e.g. last Friday of September.

Value

A vector of dates.

See Also

Other business date functions: FY, get_fy, period_boundaries

Examples

# the 1st day of the current financial year
get_boundary()

# the last day of the current financial year
get_boundary(boundary = "last day")

# the last day of the last calendar year
get_boundary(offset_period = -1, bus_period = "CY", boundary = "last day")

# the last day of month 14 months from now
get_boundary(offset_period = 14, offset_type = "month",
                  bus_period = "M", boundary = "last day")

# The first day of financial years for dates 3 months before the given dates
get_boundary(as.Date(c("02/27/1992", "09/28/2022"), "%m/%d/%Y"),
                  offset_period = -3, offset_type = "month",
                  bus_period = "FY", boundary = "1st day")


Get a financial year.

Description

get_fy() returns the current financial (fiscal) year. It also returns financial year based on parameter dates, or financial year based on a parameter dates and offset_period in years.

Usage

get_fy(date = Sys.Date(), offset_period = 0,
  opt_fy_start = getOption("busdaterFYstart", default = "07-01"))

Arguments

date

A date vector for which financial year is required. Date must be POSIXct or POSIXlt or Date objects.

offset_period

A positive or negative number coercible to integer to shift the year by, e.g. in the case of get_fy, -1 for previous year, 1 for next year. More generally in page_boundaries function it is a number of periods of a specified period type

opt_fy_start

A string in the format of "MM-DD" representing the start of financial year, e.g. "01-01" for 1st of January or "07-01" for 1st of July. This package caters for financial years that have a fixed start date. It does not cater for moving dates e.g. last Friday of September.

Value

An integer vector containing the current financial year if offset offset_period is 0, otherwise add the offset offset_period in years.

See Also

Other business date functions: FY, get_boundary, period_boundaries

Examples

get_fy() ## return the current financial year as integer

dt <- as.Date(c("01-01-2018", "15-12-2017"), "%d-%m-%Y")
get_fy(date = dt[1])
get_fy(date = dt)

get_fy(offset_period = 1) ## return the next financial year as integer
get_fy(date = dt[1], offset_period = 1)
get_fy(date = dt, offset_period = 1)

get_fy(offset_period=-1) ## return the previous financial year as integer
get_fy(date = dt[1], offset_period = -1)
get_fy(date = dt, offset_period = -1)


## Not run: 
get_fy("a") ## will fail because dates are expected.

## End(Not run)

Get date's business period boundary (deprecated).

Description

The period_boundaries is a deprecated function. It will shift the input date vector by a number of months and years i.e. date + offset_period * offset_type. It will handle the typical business date arithmetic.

Usage

period_boundaries(date = Sys.Date(), offset_period = 0,
  offset_type = "year", bus_period = "FY", boundary = "1st day",
  optFYstart = getOption("busdaterFYstart", default = "07-01"))

Arguments

date

A date vector for which financial year is required. Date must be POSIXct or POSIXlt or Date objects.

offset_period

A positive or negative number coercible to integer to shift the year by, e.g. in the case of FY, -1 for previous year, 1 for next year. More generally in page_boundaries function it is a number of periods of a specified period type

offset_type

It is either "month" or "year"

bus_period

It is either "FY" for financial year, "CE" for calendar year or "M" for month

boundary

Either "1st day" for the first day of the period or "last day" for the end of the period.

optFYstart

A string in the format of "MM-DD" representing the start of financial year, e.g. "01-01" for 1st of January or "07-01" for 1st of July. This package caters for financial years that have a fixed start date. It does not cater for moving dates e.g. last Friday of September.

Value

A vector of dates.

See Also

Other business date functions: FY, get_boundary, get_fy

Examples

# the 1st day of the current financial year
period_boundaries()

# the last day of the current financial year
period_boundaries(boundary = "last day")

# the last day of the last calendar year
period_boundaries(offset_period = -1, bus_period = "CY", boundary = "last day")

# the last day of month 14 months from now
period_boundaries(offset_period = 14, offset_type = "month",
                  bus_period = "M", boundary = "last day")

# The first day of financial years for dates 3 months before the given dates
period_boundaries(as.Date(c("02/27/1992", "09/28/2022"), "%m/%d/%Y"),
                  offset_period = -3, offset_type = "month",
                  bus_period = "FY", boundary = "1st day")

mirror server hosted at Truenetwork, Russian Federation.