date-tools
Functions for comparing and counting with dates. Includes Typescript typings.
Install
yarn add date-tools
npm install --save date-tools
Usage
add/subtract
import {Duration, add, subtract} from 'date-tools';
add(Date(2000, 1, 1), Duration.Days(5)) === Date(2000, 1, 6)
subtract(Date(2000, 1, 6), Duration.Days(5)) === Date(2000, 1, 1)
add(Date(2000, 1, 1), Duration.Months(2)) === Date(2000, 3, 1)
subtract(Date(2000, 3, 1), Duration.Months(2)) === Date(2000, 1, 1)
Date(2000, 1, 1).add(Duration.Days(5)) === Date(2000, 1, 6)
Date(2000, 1, 6).subtract(Duration.Days(5)) === Date(2000, 1, 1)
Date(2000, 1, 1).add(Duration.Months(2)) === Date(2000, 3, 1)
Date(2000, 3, 1).subtract(Duration.Months(2)) === Date(2000, 1, 1)
isEqual
import {Precision, isEqual} from 'date-tools';
isEqual(Date(2000, 1, 1), Date(2000, 1, 2), {precision: Precision.Days}) === false
isEqual(Date(2000, 1, 1), Date(2000, 1, 2), {precision: Precision.Months}) === true
timeBetween
import {Duration, timeBetween} from 'date-tools';
import {match} from 'rusted'
const compare = (start, end) => match(timeBetween(start, end), {
Days: days => `There are ${days} days between the dates`,
Months: months => `There are ${months} months between the dates`,
})
compare(Date(2000, 1, 1), Date(2000, 1, 3)) === 'There are 2 days between the dates'
compare(Date(2000, 1, 1), Date(2000, 3, 1)) === 'There are 2 months between the dates'
More Usage
Take a look at the test file.