Skip to content

datatypesjs/interval

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Interval

Module for ISO 8601 based intervals and recurring intervals.

Installation

npm install --save @datatypes/interval

Usage

As separator string it can either be used -- or /. It's recommended to use -- due to the possibility to use it in file names and URLs.

Import interval into your modules like this (ES2015 style):

import Interval, {RecurringInterval} from '@datatypes/interval'

<start moment>--<end moment>

const interval = new Interval('2015-09--2015-11')
const intervalObject = {
	string: test.title,
	start: momentFromString('2015-09'),
	end: momentFromString('2015-11'),
	duration: new Duration('P2184H0M0.0S'),
}

assert.deepEqual(interval.object, intervalObject)

<start moment>--<incomplete end moment>

const interval = new Interval('2015-11-24--30')
const intervalObject = {
	string: test.title,
	start: momentFromString('2015-11-24'),
	end: momentFromString('2015-11-30'),
	duration: new Duration('P168H0M0.0S'),
}

assert.deepEqual(interval.object, intervalObject)

R<number of recurrences>--<start moment>--<duration>

const recurringInterval = new RecurringInterval('R3--2015-11-25T15--P1H30M')
const recurringIntervalObject = {
	string: 'R3--2015-11-25T15--P1H30M',
	numberOfRecurrences: 3,
	start:  momentFromString('2015-11-25T15'),
	end: momentFromString('2015-11-25T16:30'),
	duration: new Duration('P1H30M')
}

assert.deepEqual(recurringInterval.object, recurringIntervalObject)

Check out the test directory for more usage examples!