Fiscal provides a simple interface to calculate the calendar dates for fiscal years and quarters. Fiscal has no dependencies and also offers a browser build (see fiscal.min.js).
npm install fiscal --saveconst Fiscal = require('fiscal');
const fiscal = new Fiscal(9); // Specify the 0-indexed month that your fiscal year starts
// get information about the current year
fiscal.getFiscalInfoForDate().fiscalYear
// returns { fiscalYear: 2017, fiscalMonth: 9 }Fiscal can give you information using the current date or one you specify.
Before you start using Fiscal, you need to tell Fiscal what calendar month your fiscal year starts on. This should be zero-indexed (as per JS's Date implementation).
For example, if your fiscal year starts in October, you would do:
const fiscal = new Fiscal(9);Provides information based on the provided date.
fiscal.getFiscalInfoForDate();Parameters:
DateCreates a Fiscal instance for the provided date object. If no date is provided, Fiscal will use the current date.
Returns an object containing information about the provided date.
{
fiscalYear: '[instance of FiscalYear]',
quarter: '[instance of Quarter]',
calendar: {
calendarMonth: '[zero-indexed calendar month]',
calendarYear: '[calendar year]'
}
}Returns the starting date for the fiscal year.
const info = fiscal.getFiscalInfoForDate();
info.fiscalYear.startDate // Date: 2016-10-01T00:00:00.000ZReturns the ending date for the fiscal year.
const info = fiscal.getFiscalInfoForDate();
info.fiscalYear.endDate // Date: 2017-09-00T23:59:59.999ZReturns a new instance of FiscalYear representing the previous fiscal year.
const info = fiscal.getFiscalInfoForDate();
const prevFy = info.fiscalYear.previous();Returns a new instance of FiscalYear representing the next fiscal year.
const info = fiscal.getFiscalInfoForDate();
const nextFy = info.fiscalYear.next();Returns the starting date for the fiscal year.
const info = fiscal.getFiscalInfoForDate();
info.quarter.startDate // Date: 2016-10-01T00:00:00.000ZReturns the ending date for the fiscal year.
const info = fiscal.getFiscalInfoForDate();
info.quarter.endDate // Date: 2016-12-31T23:59:59.999ZReturns a new instance of Quarter representing the previous quarter.
const info = fiscal.getFiscalInfoForDate();
const prevQuarter = info.quarter.previous();Returns a new instance of Quarter representing the next quarter.
const info = fiscal.getFiscalInfoForDate();
const nextQuarter = info.quarter.next();To run the tests, simply run npm test.
This module was developed by Mark Herhold at RTI International. It is available for use under the MIT license. Pull requests are appreciated and welcome.
