landvex: Fixar och tester klara för alla komponenter
- Datafabrik: Dockerfile fix, agentorkestrering fungerar - Vision: Identify-modell, FAISS, OCR alla testade - API: Alla 7 integrationstester passerade - Upplösare: Entitetsupplösning verifierad
This commit is contained in:
+8
@@ -0,0 +1,8 @@
|
||||
export default function addLeadingZeros(number, targetLength) {
|
||||
var sign = number < 0 ? '-' : '';
|
||||
var output = Math.abs(number).toString();
|
||||
while (output.length < targetLength) {
|
||||
output = '0' + output;
|
||||
}
|
||||
return sign + output;
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
export default function assign(target, object) {
|
||||
if (target == null) {
|
||||
throw new TypeError('assign requires that input parameter not be null or undefined');
|
||||
}
|
||||
for (var property in object) {
|
||||
if (Object.prototype.hasOwnProperty.call(object, property)) {
|
||||
;
|
||||
target[property] = object[property];
|
||||
}
|
||||
}
|
||||
return target;
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
import assign from "../assign/index.js";
|
||||
export default function cloneObject(object) {
|
||||
return assign({}, object);
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import defaultLocale from "../../locale/en-US/index.js";
|
||||
export default defaultLocale;
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
var defaultOptions = {};
|
||||
export function getDefaultOptions() {
|
||||
return defaultOptions;
|
||||
}
|
||||
export function setDefaultOptions(newOptions) {
|
||||
defaultOptions = newOptions;
|
||||
}
|
||||
+772
@@ -0,0 +1,772 @@
|
||||
import getUTCDayOfYear from "../../../_lib/getUTCDayOfYear/index.js";
|
||||
import getUTCISOWeek from "../../../_lib/getUTCISOWeek/index.js";
|
||||
import getUTCISOWeekYear from "../../../_lib/getUTCISOWeekYear/index.js";
|
||||
import getUTCWeek from "../../../_lib/getUTCWeek/index.js";
|
||||
import getUTCWeekYear from "../../../_lib/getUTCWeekYear/index.js";
|
||||
import addLeadingZeros from "../../addLeadingZeros/index.js";
|
||||
import lightFormatters from "../lightFormatters/index.js";
|
||||
var dayPeriodEnum = {
|
||||
am: 'am',
|
||||
pm: 'pm',
|
||||
midnight: 'midnight',
|
||||
noon: 'noon',
|
||||
morning: 'morning',
|
||||
afternoon: 'afternoon',
|
||||
evening: 'evening',
|
||||
night: 'night'
|
||||
};
|
||||
/*
|
||||
* | | Unit | | Unit |
|
||||
* |-----|--------------------------------|-----|--------------------------------|
|
||||
* | a | AM, PM | A* | Milliseconds in day |
|
||||
* | b | AM, PM, noon, midnight | B | Flexible day period |
|
||||
* | c | Stand-alone local day of week | C* | Localized hour w/ day period |
|
||||
* | d | Day of month | D | Day of year |
|
||||
* | e | Local day of week | E | Day of week |
|
||||
* | f | | F* | Day of week in month |
|
||||
* | g* | Modified Julian day | G | Era |
|
||||
* | h | Hour [1-12] | H | Hour [0-23] |
|
||||
* | i! | ISO day of week | I! | ISO week of year |
|
||||
* | j* | Localized hour w/ day period | J* | Localized hour w/o day period |
|
||||
* | k | Hour [1-24] | K | Hour [0-11] |
|
||||
* | l* | (deprecated) | L | Stand-alone month |
|
||||
* | m | Minute | M | Month |
|
||||
* | n | | N | |
|
||||
* | o! | Ordinal number modifier | O | Timezone (GMT) |
|
||||
* | p! | Long localized time | P! | Long localized date |
|
||||
* | q | Stand-alone quarter | Q | Quarter |
|
||||
* | r* | Related Gregorian year | R! | ISO week-numbering year |
|
||||
* | s | Second | S | Fraction of second |
|
||||
* | t! | Seconds timestamp | T! | Milliseconds timestamp |
|
||||
* | u | Extended year | U* | Cyclic year |
|
||||
* | v* | Timezone (generic non-locat.) | V* | Timezone (location) |
|
||||
* | w | Local week of year | W* | Week of month |
|
||||
* | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |
|
||||
* | y | Year (abs) | Y | Local week-numbering year |
|
||||
* | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |
|
||||
*
|
||||
* Letters marked by * are not implemented but reserved by Unicode standard.
|
||||
*
|
||||
* Letters marked by ! are non-standard, but implemented by date-fns:
|
||||
* - `o` modifies the previous token to turn it into an ordinal (see `format` docs)
|
||||
* - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,
|
||||
* i.e. 7 for Sunday, 1 for Monday, etc.
|
||||
* - `I` is ISO week of year, as opposed to `w` which is local week of year.
|
||||
* - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.
|
||||
* `R` is supposed to be used in conjunction with `I` and `i`
|
||||
* for universal ISO week-numbering date, whereas
|
||||
* `Y` is supposed to be used in conjunction with `w` and `e`
|
||||
* for week-numbering date specific to the locale.
|
||||
* - `P` is long localized date format
|
||||
* - `p` is long localized time format
|
||||
*/
|
||||
|
||||
var formatters = {
|
||||
// Era
|
||||
G: function G(date, token, localize) {
|
||||
var era = date.getUTCFullYear() > 0 ? 1 : 0;
|
||||
switch (token) {
|
||||
// AD, BC
|
||||
case 'G':
|
||||
case 'GG':
|
||||
case 'GGG':
|
||||
return localize.era(era, {
|
||||
width: 'abbreviated'
|
||||
});
|
||||
// A, B
|
||||
case 'GGGGG':
|
||||
return localize.era(era, {
|
||||
width: 'narrow'
|
||||
});
|
||||
// Anno Domini, Before Christ
|
||||
case 'GGGG':
|
||||
default:
|
||||
return localize.era(era, {
|
||||
width: 'wide'
|
||||
});
|
||||
}
|
||||
},
|
||||
// Year
|
||||
y: function y(date, token, localize) {
|
||||
// Ordinal number
|
||||
if (token === 'yo') {
|
||||
var signedYear = date.getUTCFullYear();
|
||||
// Returns 1 for 1 BC (which is year 0 in JavaScript)
|
||||
var year = signedYear > 0 ? signedYear : 1 - signedYear;
|
||||
return localize.ordinalNumber(year, {
|
||||
unit: 'year'
|
||||
});
|
||||
}
|
||||
return lightFormatters.y(date, token);
|
||||
},
|
||||
// Local week-numbering year
|
||||
Y: function Y(date, token, localize, options) {
|
||||
var signedWeekYear = getUTCWeekYear(date, options);
|
||||
// Returns 1 for 1 BC (which is year 0 in JavaScript)
|
||||
var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;
|
||||
|
||||
// Two digit year
|
||||
if (token === 'YY') {
|
||||
var twoDigitYear = weekYear % 100;
|
||||
return addLeadingZeros(twoDigitYear, 2);
|
||||
}
|
||||
|
||||
// Ordinal number
|
||||
if (token === 'Yo') {
|
||||
return localize.ordinalNumber(weekYear, {
|
||||
unit: 'year'
|
||||
});
|
||||
}
|
||||
|
||||
// Padding
|
||||
return addLeadingZeros(weekYear, token.length);
|
||||
},
|
||||
// ISO week-numbering year
|
||||
R: function R(date, token) {
|
||||
var isoWeekYear = getUTCISOWeekYear(date);
|
||||
|
||||
// Padding
|
||||
return addLeadingZeros(isoWeekYear, token.length);
|
||||
},
|
||||
// Extended year. This is a single number designating the year of this calendar system.
|
||||
// The main difference between `y` and `u` localizers are B.C. years:
|
||||
// | Year | `y` | `u` |
|
||||
// |------|-----|-----|
|
||||
// | AC 1 | 1 | 1 |
|
||||
// | BC 1 | 1 | 0 |
|
||||
// | BC 2 | 2 | -1 |
|
||||
// Also `yy` always returns the last two digits of a year,
|
||||
// while `uu` pads single digit years to 2 characters and returns other years unchanged.
|
||||
u: function u(date, token) {
|
||||
var year = date.getUTCFullYear();
|
||||
return addLeadingZeros(year, token.length);
|
||||
},
|
||||
// Quarter
|
||||
Q: function Q(date, token, localize) {
|
||||
var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
|
||||
switch (token) {
|
||||
// 1, 2, 3, 4
|
||||
case 'Q':
|
||||
return String(quarter);
|
||||
// 01, 02, 03, 04
|
||||
case 'QQ':
|
||||
return addLeadingZeros(quarter, 2);
|
||||
// 1st, 2nd, 3rd, 4th
|
||||
case 'Qo':
|
||||
return localize.ordinalNumber(quarter, {
|
||||
unit: 'quarter'
|
||||
});
|
||||
// Q1, Q2, Q3, Q4
|
||||
case 'QQQ':
|
||||
return localize.quarter(quarter, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
});
|
||||
// 1, 2, 3, 4 (narrow quarter; could be not numerical)
|
||||
case 'QQQQQ':
|
||||
return localize.quarter(quarter, {
|
||||
width: 'narrow',
|
||||
context: 'formatting'
|
||||
});
|
||||
// 1st quarter, 2nd quarter, ...
|
||||
case 'QQQQ':
|
||||
default:
|
||||
return localize.quarter(quarter, {
|
||||
width: 'wide',
|
||||
context: 'formatting'
|
||||
});
|
||||
}
|
||||
},
|
||||
// Stand-alone quarter
|
||||
q: function q(date, token, localize) {
|
||||
var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);
|
||||
switch (token) {
|
||||
// 1, 2, 3, 4
|
||||
case 'q':
|
||||
return String(quarter);
|
||||
// 01, 02, 03, 04
|
||||
case 'qq':
|
||||
return addLeadingZeros(quarter, 2);
|
||||
// 1st, 2nd, 3rd, 4th
|
||||
case 'qo':
|
||||
return localize.ordinalNumber(quarter, {
|
||||
unit: 'quarter'
|
||||
});
|
||||
// Q1, Q2, Q3, Q4
|
||||
case 'qqq':
|
||||
return localize.quarter(quarter, {
|
||||
width: 'abbreviated',
|
||||
context: 'standalone'
|
||||
});
|
||||
// 1, 2, 3, 4 (narrow quarter; could be not numerical)
|
||||
case 'qqqqq':
|
||||
return localize.quarter(quarter, {
|
||||
width: 'narrow',
|
||||
context: 'standalone'
|
||||
});
|
||||
// 1st quarter, 2nd quarter, ...
|
||||
case 'qqqq':
|
||||
default:
|
||||
return localize.quarter(quarter, {
|
||||
width: 'wide',
|
||||
context: 'standalone'
|
||||
});
|
||||
}
|
||||
},
|
||||
// Month
|
||||
M: function M(date, token, localize) {
|
||||
var month = date.getUTCMonth();
|
||||
switch (token) {
|
||||
case 'M':
|
||||
case 'MM':
|
||||
return lightFormatters.M(date, token);
|
||||
// 1st, 2nd, ..., 12th
|
||||
case 'Mo':
|
||||
return localize.ordinalNumber(month + 1, {
|
||||
unit: 'month'
|
||||
});
|
||||
// Jan, Feb, ..., Dec
|
||||
case 'MMM':
|
||||
return localize.month(month, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
});
|
||||
// J, F, ..., D
|
||||
case 'MMMMM':
|
||||
return localize.month(month, {
|
||||
width: 'narrow',
|
||||
context: 'formatting'
|
||||
});
|
||||
// January, February, ..., December
|
||||
case 'MMMM':
|
||||
default:
|
||||
return localize.month(month, {
|
||||
width: 'wide',
|
||||
context: 'formatting'
|
||||
});
|
||||
}
|
||||
},
|
||||
// Stand-alone month
|
||||
L: function L(date, token, localize) {
|
||||
var month = date.getUTCMonth();
|
||||
switch (token) {
|
||||
// 1, 2, ..., 12
|
||||
case 'L':
|
||||
return String(month + 1);
|
||||
// 01, 02, ..., 12
|
||||
case 'LL':
|
||||
return addLeadingZeros(month + 1, 2);
|
||||
// 1st, 2nd, ..., 12th
|
||||
case 'Lo':
|
||||
return localize.ordinalNumber(month + 1, {
|
||||
unit: 'month'
|
||||
});
|
||||
// Jan, Feb, ..., Dec
|
||||
case 'LLL':
|
||||
return localize.month(month, {
|
||||
width: 'abbreviated',
|
||||
context: 'standalone'
|
||||
});
|
||||
// J, F, ..., D
|
||||
case 'LLLLL':
|
||||
return localize.month(month, {
|
||||
width: 'narrow',
|
||||
context: 'standalone'
|
||||
});
|
||||
// January, February, ..., December
|
||||
case 'LLLL':
|
||||
default:
|
||||
return localize.month(month, {
|
||||
width: 'wide',
|
||||
context: 'standalone'
|
||||
});
|
||||
}
|
||||
},
|
||||
// Local week of year
|
||||
w: function w(date, token, localize, options) {
|
||||
var week = getUTCWeek(date, options);
|
||||
if (token === 'wo') {
|
||||
return localize.ordinalNumber(week, {
|
||||
unit: 'week'
|
||||
});
|
||||
}
|
||||
return addLeadingZeros(week, token.length);
|
||||
},
|
||||
// ISO week of year
|
||||
I: function I(date, token, localize) {
|
||||
var isoWeek = getUTCISOWeek(date);
|
||||
if (token === 'Io') {
|
||||
return localize.ordinalNumber(isoWeek, {
|
||||
unit: 'week'
|
||||
});
|
||||
}
|
||||
return addLeadingZeros(isoWeek, token.length);
|
||||
},
|
||||
// Day of the month
|
||||
d: function d(date, token, localize) {
|
||||
if (token === 'do') {
|
||||
return localize.ordinalNumber(date.getUTCDate(), {
|
||||
unit: 'date'
|
||||
});
|
||||
}
|
||||
return lightFormatters.d(date, token);
|
||||
},
|
||||
// Day of year
|
||||
D: function D(date, token, localize) {
|
||||
var dayOfYear = getUTCDayOfYear(date);
|
||||
if (token === 'Do') {
|
||||
return localize.ordinalNumber(dayOfYear, {
|
||||
unit: 'dayOfYear'
|
||||
});
|
||||
}
|
||||
return addLeadingZeros(dayOfYear, token.length);
|
||||
},
|
||||
// Day of week
|
||||
E: function E(date, token, localize) {
|
||||
var dayOfWeek = date.getUTCDay();
|
||||
switch (token) {
|
||||
// Tue
|
||||
case 'E':
|
||||
case 'EE':
|
||||
case 'EEE':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
});
|
||||
// T
|
||||
case 'EEEEE':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'narrow',
|
||||
context: 'formatting'
|
||||
});
|
||||
// Tu
|
||||
case 'EEEEEE':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'short',
|
||||
context: 'formatting'
|
||||
});
|
||||
// Tuesday
|
||||
case 'EEEE':
|
||||
default:
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'wide',
|
||||
context: 'formatting'
|
||||
});
|
||||
}
|
||||
},
|
||||
// Local day of week
|
||||
e: function e(date, token, localize, options) {
|
||||
var dayOfWeek = date.getUTCDay();
|
||||
var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
|
||||
switch (token) {
|
||||
// Numerical value (Nth day of week with current locale or weekStartsOn)
|
||||
case 'e':
|
||||
return String(localDayOfWeek);
|
||||
// Padded numerical value
|
||||
case 'ee':
|
||||
return addLeadingZeros(localDayOfWeek, 2);
|
||||
// 1st, 2nd, ..., 7th
|
||||
case 'eo':
|
||||
return localize.ordinalNumber(localDayOfWeek, {
|
||||
unit: 'day'
|
||||
});
|
||||
case 'eee':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
});
|
||||
// T
|
||||
case 'eeeee':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'narrow',
|
||||
context: 'formatting'
|
||||
});
|
||||
// Tu
|
||||
case 'eeeeee':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'short',
|
||||
context: 'formatting'
|
||||
});
|
||||
// Tuesday
|
||||
case 'eeee':
|
||||
default:
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'wide',
|
||||
context: 'formatting'
|
||||
});
|
||||
}
|
||||
},
|
||||
// Stand-alone local day of week
|
||||
c: function c(date, token, localize, options) {
|
||||
var dayOfWeek = date.getUTCDay();
|
||||
var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
|
||||
switch (token) {
|
||||
// Numerical value (same as in `e`)
|
||||
case 'c':
|
||||
return String(localDayOfWeek);
|
||||
// Padded numerical value
|
||||
case 'cc':
|
||||
return addLeadingZeros(localDayOfWeek, token.length);
|
||||
// 1st, 2nd, ..., 7th
|
||||
case 'co':
|
||||
return localize.ordinalNumber(localDayOfWeek, {
|
||||
unit: 'day'
|
||||
});
|
||||
case 'ccc':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'abbreviated',
|
||||
context: 'standalone'
|
||||
});
|
||||
// T
|
||||
case 'ccccc':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'narrow',
|
||||
context: 'standalone'
|
||||
});
|
||||
// Tu
|
||||
case 'cccccc':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'short',
|
||||
context: 'standalone'
|
||||
});
|
||||
// Tuesday
|
||||
case 'cccc':
|
||||
default:
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'wide',
|
||||
context: 'standalone'
|
||||
});
|
||||
}
|
||||
},
|
||||
// ISO day of week
|
||||
i: function i(date, token, localize) {
|
||||
var dayOfWeek = date.getUTCDay();
|
||||
var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
|
||||
switch (token) {
|
||||
// 2
|
||||
case 'i':
|
||||
return String(isoDayOfWeek);
|
||||
// 02
|
||||
case 'ii':
|
||||
return addLeadingZeros(isoDayOfWeek, token.length);
|
||||
// 2nd
|
||||
case 'io':
|
||||
return localize.ordinalNumber(isoDayOfWeek, {
|
||||
unit: 'day'
|
||||
});
|
||||
// Tue
|
||||
case 'iii':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
});
|
||||
// T
|
||||
case 'iiiii':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'narrow',
|
||||
context: 'formatting'
|
||||
});
|
||||
// Tu
|
||||
case 'iiiiii':
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'short',
|
||||
context: 'formatting'
|
||||
});
|
||||
// Tuesday
|
||||
case 'iiii':
|
||||
default:
|
||||
return localize.day(dayOfWeek, {
|
||||
width: 'wide',
|
||||
context: 'formatting'
|
||||
});
|
||||
}
|
||||
},
|
||||
// AM or PM
|
||||
a: function a(date, token, localize) {
|
||||
var hours = date.getUTCHours();
|
||||
var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';
|
||||
switch (token) {
|
||||
case 'a':
|
||||
case 'aa':
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
});
|
||||
case 'aaa':
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
}).toLowerCase();
|
||||
case 'aaaaa':
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'narrow',
|
||||
context: 'formatting'
|
||||
});
|
||||
case 'aaaa':
|
||||
default:
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'wide',
|
||||
context: 'formatting'
|
||||
});
|
||||
}
|
||||
},
|
||||
// AM, PM, midnight, noon
|
||||
b: function b(date, token, localize) {
|
||||
var hours = date.getUTCHours();
|
||||
var dayPeriodEnumValue;
|
||||
if (hours === 12) {
|
||||
dayPeriodEnumValue = dayPeriodEnum.noon;
|
||||
} else if (hours === 0) {
|
||||
dayPeriodEnumValue = dayPeriodEnum.midnight;
|
||||
} else {
|
||||
dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';
|
||||
}
|
||||
switch (token) {
|
||||
case 'b':
|
||||
case 'bb':
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
});
|
||||
case 'bbb':
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
}).toLowerCase();
|
||||
case 'bbbbb':
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'narrow',
|
||||
context: 'formatting'
|
||||
});
|
||||
case 'bbbb':
|
||||
default:
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'wide',
|
||||
context: 'formatting'
|
||||
});
|
||||
}
|
||||
},
|
||||
// in the morning, in the afternoon, in the evening, at night
|
||||
B: function B(date, token, localize) {
|
||||
var hours = date.getUTCHours();
|
||||
var dayPeriodEnumValue;
|
||||
if (hours >= 17) {
|
||||
dayPeriodEnumValue = dayPeriodEnum.evening;
|
||||
} else if (hours >= 12) {
|
||||
dayPeriodEnumValue = dayPeriodEnum.afternoon;
|
||||
} else if (hours >= 4) {
|
||||
dayPeriodEnumValue = dayPeriodEnum.morning;
|
||||
} else {
|
||||
dayPeriodEnumValue = dayPeriodEnum.night;
|
||||
}
|
||||
switch (token) {
|
||||
case 'B':
|
||||
case 'BB':
|
||||
case 'BBB':
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'abbreviated',
|
||||
context: 'formatting'
|
||||
});
|
||||
case 'BBBBB':
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'narrow',
|
||||
context: 'formatting'
|
||||
});
|
||||
case 'BBBB':
|
||||
default:
|
||||
return localize.dayPeriod(dayPeriodEnumValue, {
|
||||
width: 'wide',
|
||||
context: 'formatting'
|
||||
});
|
||||
}
|
||||
},
|
||||
// Hour [1-12]
|
||||
h: function h(date, token, localize) {
|
||||
if (token === 'ho') {
|
||||
var hours = date.getUTCHours() % 12;
|
||||
if (hours === 0) hours = 12;
|
||||
return localize.ordinalNumber(hours, {
|
||||
unit: 'hour'
|
||||
});
|
||||
}
|
||||
return lightFormatters.h(date, token);
|
||||
},
|
||||
// Hour [0-23]
|
||||
H: function H(date, token, localize) {
|
||||
if (token === 'Ho') {
|
||||
return localize.ordinalNumber(date.getUTCHours(), {
|
||||
unit: 'hour'
|
||||
});
|
||||
}
|
||||
return lightFormatters.H(date, token);
|
||||
},
|
||||
// Hour [0-11]
|
||||
K: function K(date, token, localize) {
|
||||
var hours = date.getUTCHours() % 12;
|
||||
if (token === 'Ko') {
|
||||
return localize.ordinalNumber(hours, {
|
||||
unit: 'hour'
|
||||
});
|
||||
}
|
||||
return addLeadingZeros(hours, token.length);
|
||||
},
|
||||
// Hour [1-24]
|
||||
k: function k(date, token, localize) {
|
||||
var hours = date.getUTCHours();
|
||||
if (hours === 0) hours = 24;
|
||||
if (token === 'ko') {
|
||||
return localize.ordinalNumber(hours, {
|
||||
unit: 'hour'
|
||||
});
|
||||
}
|
||||
return addLeadingZeros(hours, token.length);
|
||||
},
|
||||
// Minute
|
||||
m: function m(date, token, localize) {
|
||||
if (token === 'mo') {
|
||||
return localize.ordinalNumber(date.getUTCMinutes(), {
|
||||
unit: 'minute'
|
||||
});
|
||||
}
|
||||
return lightFormatters.m(date, token);
|
||||
},
|
||||
// Second
|
||||
s: function s(date, token, localize) {
|
||||
if (token === 'so') {
|
||||
return localize.ordinalNumber(date.getUTCSeconds(), {
|
||||
unit: 'second'
|
||||
});
|
||||
}
|
||||
return lightFormatters.s(date, token);
|
||||
},
|
||||
// Fraction of second
|
||||
S: function S(date, token) {
|
||||
return lightFormatters.S(date, token);
|
||||
},
|
||||
// Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
|
||||
X: function X(date, token, _localize, options) {
|
||||
var originalDate = options._originalDate || date;
|
||||
var timezoneOffset = originalDate.getTimezoneOffset();
|
||||
if (timezoneOffset === 0) {
|
||||
return 'Z';
|
||||
}
|
||||
switch (token) {
|
||||
// Hours and optional minutes
|
||||
case 'X':
|
||||
return formatTimezoneWithOptionalMinutes(timezoneOffset);
|
||||
|
||||
// Hours, minutes and optional seconds without `:` delimiter
|
||||
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
||||
// so this token always has the same output as `XX`
|
||||
case 'XXXX':
|
||||
case 'XX':
|
||||
// Hours and minutes without `:` delimiter
|
||||
return formatTimezone(timezoneOffset);
|
||||
|
||||
// Hours, minutes and optional seconds with `:` delimiter
|
||||
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
||||
// so this token always has the same output as `XXX`
|
||||
case 'XXXXX':
|
||||
case 'XXX': // Hours and minutes with `:` delimiter
|
||||
default:
|
||||
return formatTimezone(timezoneOffset, ':');
|
||||
}
|
||||
},
|
||||
// Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
|
||||
x: function x(date, token, _localize, options) {
|
||||
var originalDate = options._originalDate || date;
|
||||
var timezoneOffset = originalDate.getTimezoneOffset();
|
||||
switch (token) {
|
||||
// Hours and optional minutes
|
||||
case 'x':
|
||||
return formatTimezoneWithOptionalMinutes(timezoneOffset);
|
||||
|
||||
// Hours, minutes and optional seconds without `:` delimiter
|
||||
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
||||
// so this token always has the same output as `xx`
|
||||
case 'xxxx':
|
||||
case 'xx':
|
||||
// Hours and minutes without `:` delimiter
|
||||
return formatTimezone(timezoneOffset);
|
||||
|
||||
// Hours, minutes and optional seconds with `:` delimiter
|
||||
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
||||
// so this token always has the same output as `xxx`
|
||||
case 'xxxxx':
|
||||
case 'xxx': // Hours and minutes with `:` delimiter
|
||||
default:
|
||||
return formatTimezone(timezoneOffset, ':');
|
||||
}
|
||||
},
|
||||
// Timezone (GMT)
|
||||
O: function O(date, token, _localize, options) {
|
||||
var originalDate = options._originalDate || date;
|
||||
var timezoneOffset = originalDate.getTimezoneOffset();
|
||||
switch (token) {
|
||||
// Short
|
||||
case 'O':
|
||||
case 'OO':
|
||||
case 'OOO':
|
||||
return 'GMT' + formatTimezoneShort(timezoneOffset, ':');
|
||||
// Long
|
||||
case 'OOOO':
|
||||
default:
|
||||
return 'GMT' + formatTimezone(timezoneOffset, ':');
|
||||
}
|
||||
},
|
||||
// Timezone (specific non-location)
|
||||
z: function z(date, token, _localize, options) {
|
||||
var originalDate = options._originalDate || date;
|
||||
var timezoneOffset = originalDate.getTimezoneOffset();
|
||||
switch (token) {
|
||||
// Short
|
||||
case 'z':
|
||||
case 'zz':
|
||||
case 'zzz':
|
||||
return 'GMT' + formatTimezoneShort(timezoneOffset, ':');
|
||||
// Long
|
||||
case 'zzzz':
|
||||
default:
|
||||
return 'GMT' + formatTimezone(timezoneOffset, ':');
|
||||
}
|
||||
},
|
||||
// Seconds timestamp
|
||||
t: function t(date, token, _localize, options) {
|
||||
var originalDate = options._originalDate || date;
|
||||
var timestamp = Math.floor(originalDate.getTime() / 1000);
|
||||
return addLeadingZeros(timestamp, token.length);
|
||||
},
|
||||
// Milliseconds timestamp
|
||||
T: function T(date, token, _localize, options) {
|
||||
var originalDate = options._originalDate || date;
|
||||
var timestamp = originalDate.getTime();
|
||||
return addLeadingZeros(timestamp, token.length);
|
||||
}
|
||||
};
|
||||
function formatTimezoneShort(offset, dirtyDelimiter) {
|
||||
var sign = offset > 0 ? '-' : '+';
|
||||
var absOffset = Math.abs(offset);
|
||||
var hours = Math.floor(absOffset / 60);
|
||||
var minutes = absOffset % 60;
|
||||
if (minutes === 0) {
|
||||
return sign + String(hours);
|
||||
}
|
||||
var delimiter = dirtyDelimiter || '';
|
||||
return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);
|
||||
}
|
||||
function formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {
|
||||
if (offset % 60 === 0) {
|
||||
var sign = offset > 0 ? '-' : '+';
|
||||
return sign + addLeadingZeros(Math.abs(offset) / 60, 2);
|
||||
}
|
||||
return formatTimezone(offset, dirtyDelimiter);
|
||||
}
|
||||
function formatTimezone(offset, dirtyDelimiter) {
|
||||
var delimiter = dirtyDelimiter || '';
|
||||
var sign = offset > 0 ? '-' : '+';
|
||||
var absOffset = Math.abs(offset);
|
||||
var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);
|
||||
var minutes = addLeadingZeros(absOffset % 60, 2);
|
||||
return sign + hours + delimiter + minutes;
|
||||
}
|
||||
export default formatters;
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
import addLeadingZeros from "../../addLeadingZeros/index.js";
|
||||
/*
|
||||
* | | Unit | | Unit |
|
||||
* |-----|--------------------------------|-----|--------------------------------|
|
||||
* | a | AM, PM | A* | |
|
||||
* | d | Day of month | D | |
|
||||
* | h | Hour [1-12] | H | Hour [0-23] |
|
||||
* | m | Minute | M | Month |
|
||||
* | s | Second | S | Fraction of second |
|
||||
* | y | Year (abs) | Y | |
|
||||
*
|
||||
* Letters marked by * are not implemented but reserved by Unicode standard.
|
||||
*/
|
||||
var formatters = {
|
||||
// Year
|
||||
y: function y(date, token) {
|
||||
// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens
|
||||
// | Year | y | yy | yyy | yyyy | yyyyy |
|
||||
// |----------|-------|----|-------|-------|-------|
|
||||
// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |
|
||||
// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |
|
||||
// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |
|
||||
// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |
|
||||
// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |
|
||||
|
||||
var signedYear = date.getUTCFullYear();
|
||||
// Returns 1 for 1 BC (which is year 0 in JavaScript)
|
||||
var year = signedYear > 0 ? signedYear : 1 - signedYear;
|
||||
return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);
|
||||
},
|
||||
// Month
|
||||
M: function M(date, token) {
|
||||
var month = date.getUTCMonth();
|
||||
return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);
|
||||
},
|
||||
// Day of the month
|
||||
d: function d(date, token) {
|
||||
return addLeadingZeros(date.getUTCDate(), token.length);
|
||||
},
|
||||
// AM or PM
|
||||
a: function a(date, token) {
|
||||
var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';
|
||||
switch (token) {
|
||||
case 'a':
|
||||
case 'aa':
|
||||
return dayPeriodEnumValue.toUpperCase();
|
||||
case 'aaa':
|
||||
return dayPeriodEnumValue;
|
||||
case 'aaaaa':
|
||||
return dayPeriodEnumValue[0];
|
||||
case 'aaaa':
|
||||
default:
|
||||
return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';
|
||||
}
|
||||
},
|
||||
// Hour [1-12]
|
||||
h: function h(date, token) {
|
||||
return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);
|
||||
},
|
||||
// Hour [0-23]
|
||||
H: function H(date, token) {
|
||||
return addLeadingZeros(date.getUTCHours(), token.length);
|
||||
},
|
||||
// Minute
|
||||
m: function m(date, token) {
|
||||
return addLeadingZeros(date.getUTCMinutes(), token.length);
|
||||
},
|
||||
// Second
|
||||
s: function s(date, token) {
|
||||
return addLeadingZeros(date.getUTCSeconds(), token.length);
|
||||
},
|
||||
// Fraction of second
|
||||
S: function S(date, token) {
|
||||
var numberOfDigits = token.length;
|
||||
var milliseconds = date.getUTCMilliseconds();
|
||||
var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));
|
||||
return addLeadingZeros(fractionalSeconds, token.length);
|
||||
}
|
||||
};
|
||||
export default formatters;
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {
|
||||
switch (pattern) {
|
||||
case 'P':
|
||||
return formatLong.date({
|
||||
width: 'short'
|
||||
});
|
||||
case 'PP':
|
||||
return formatLong.date({
|
||||
width: 'medium'
|
||||
});
|
||||
case 'PPP':
|
||||
return formatLong.date({
|
||||
width: 'long'
|
||||
});
|
||||
case 'PPPP':
|
||||
default:
|
||||
return formatLong.date({
|
||||
width: 'full'
|
||||
});
|
||||
}
|
||||
};
|
||||
var timeLongFormatter = function timeLongFormatter(pattern, formatLong) {
|
||||
switch (pattern) {
|
||||
case 'p':
|
||||
return formatLong.time({
|
||||
width: 'short'
|
||||
});
|
||||
case 'pp':
|
||||
return formatLong.time({
|
||||
width: 'medium'
|
||||
});
|
||||
case 'ppp':
|
||||
return formatLong.time({
|
||||
width: 'long'
|
||||
});
|
||||
case 'pppp':
|
||||
default:
|
||||
return formatLong.time({
|
||||
width: 'full'
|
||||
});
|
||||
}
|
||||
};
|
||||
var dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {
|
||||
var matchResult = pattern.match(/(P+)(p+)?/) || [];
|
||||
var datePattern = matchResult[1];
|
||||
var timePattern = matchResult[2];
|
||||
if (!timePattern) {
|
||||
return dateLongFormatter(pattern, formatLong);
|
||||
}
|
||||
var dateTimeFormat;
|
||||
switch (datePattern) {
|
||||
case 'P':
|
||||
dateTimeFormat = formatLong.dateTime({
|
||||
width: 'short'
|
||||
});
|
||||
break;
|
||||
case 'PP':
|
||||
dateTimeFormat = formatLong.dateTime({
|
||||
width: 'medium'
|
||||
});
|
||||
break;
|
||||
case 'PPP':
|
||||
dateTimeFormat = formatLong.dateTime({
|
||||
width: 'long'
|
||||
});
|
||||
break;
|
||||
case 'PPPP':
|
||||
default:
|
||||
dateTimeFormat = formatLong.dateTime({
|
||||
width: 'full'
|
||||
});
|
||||
break;
|
||||
}
|
||||
return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));
|
||||
};
|
||||
var longFormatters = {
|
||||
p: timeLongFormatter,
|
||||
P: dateTimeLongFormatter
|
||||
};
|
||||
export default longFormatters;
|
||||
Generated
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.
|
||||
* They usually appear for dates that denote time before the timezones were introduced
|
||||
* (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891
|
||||
* and GMT+01:00:00 after that date)
|
||||
*
|
||||
* Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,
|
||||
* which would lead to incorrect calculations.
|
||||
*
|
||||
* This function returns the timezone offset in milliseconds that takes seconds in account.
|
||||
*/
|
||||
export default function getTimezoneOffsetInMilliseconds(date) {
|
||||
var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
|
||||
utcDate.setUTCFullYear(date.getFullYear());
|
||||
return date.getTime() - utcDate.getTime();
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import toDate from "../../toDate/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
var MILLISECONDS_IN_DAY = 86400000;
|
||||
export default function getUTCDayOfYear(dirtyDate) {
|
||||
requiredArgs(1, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var timestamp = date.getTime();
|
||||
date.setUTCMonth(0, 1);
|
||||
date.setUTCHours(0, 0, 0, 0);
|
||||
var startOfYearTimestamp = date.getTime();
|
||||
var difference = timestamp - startOfYearTimestamp;
|
||||
return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import toDate from "../../toDate/index.js";
|
||||
import startOfUTCISOWeek from "../startOfUTCISOWeek/index.js";
|
||||
import startOfUTCISOWeekYear from "../startOfUTCISOWeekYear/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
var MILLISECONDS_IN_WEEK = 604800000;
|
||||
export default function getUTCISOWeek(dirtyDate) {
|
||||
requiredArgs(1, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();
|
||||
|
||||
// Round the number of days to the nearest integer
|
||||
// because the number of milliseconds in a week is not constant
|
||||
// (e.g. it's different in the week of the daylight saving time clock shift)
|
||||
return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
import toDate from "../../toDate/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
import startOfUTCISOWeek from "../startOfUTCISOWeek/index.js";
|
||||
export default function getUTCISOWeekYear(dirtyDate) {
|
||||
requiredArgs(1, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var year = date.getUTCFullYear();
|
||||
var fourthOfJanuaryOfNextYear = new Date(0);
|
||||
fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);
|
||||
fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);
|
||||
var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);
|
||||
var fourthOfJanuaryOfThisYear = new Date(0);
|
||||
fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);
|
||||
fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);
|
||||
var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);
|
||||
if (date.getTime() >= startOfNextYear.getTime()) {
|
||||
return year + 1;
|
||||
} else if (date.getTime() >= startOfThisYear.getTime()) {
|
||||
return year;
|
||||
} else {
|
||||
return year - 1;
|
||||
}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import toDate from "../../toDate/index.js";
|
||||
import startOfUTCWeek from "../startOfUTCWeek/index.js";
|
||||
import startOfUTCWeekYear from "../startOfUTCWeekYear/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
var MILLISECONDS_IN_WEEK = 604800000;
|
||||
export default function getUTCWeek(dirtyDate, options) {
|
||||
requiredArgs(1, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();
|
||||
|
||||
// Round the number of days to the nearest integer
|
||||
// because the number of milliseconds in a week is not constant
|
||||
// (e.g. it's different in the week of the daylight saving time clock shift)
|
||||
return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
import toDate from "../../toDate/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
import startOfUTCWeek from "../startOfUTCWeek/index.js";
|
||||
import toInteger from "../toInteger/index.js";
|
||||
import { getDefaultOptions } from "../defaultOptions/index.js";
|
||||
export default function getUTCWeekYear(dirtyDate, options) {
|
||||
var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
|
||||
requiredArgs(1, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var year = date.getUTCFullYear();
|
||||
var defaultOptions = getDefaultOptions();
|
||||
var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);
|
||||
|
||||
// Test if weekStartsOn is between 1 and 7 _and_ is not NaN
|
||||
if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
|
||||
throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
|
||||
}
|
||||
var firstWeekOfNextYear = new Date(0);
|
||||
firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);
|
||||
firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);
|
||||
var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);
|
||||
var firstWeekOfThisYear = new Date(0);
|
||||
firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);
|
||||
firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);
|
||||
var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);
|
||||
if (date.getTime() >= startOfNextYear.getTime()) {
|
||||
return year + 1;
|
||||
} else if (date.getTime() >= startOfThisYear.getTime()) {
|
||||
return year;
|
||||
} else {
|
||||
return year - 1;
|
||||
}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
import startOfUTCWeek from "../startOfUTCWeek/index.js";
|
||||
export default function isSameUTCWeek(dirtyDateLeft, dirtyDateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeftStartOfWeek = startOfUTCWeek(dirtyDateLeft, options);
|
||||
var dateRightStartOfWeek = startOfUTCWeek(dirtyDateRight, options);
|
||||
return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
var protectedDayOfYearTokens = ['D', 'DD'];
|
||||
var protectedWeekYearTokens = ['YY', 'YYYY'];
|
||||
export function isProtectedDayOfYearToken(token) {
|
||||
return protectedDayOfYearTokens.indexOf(token) !== -1;
|
||||
}
|
||||
export function isProtectedWeekYearToken(token) {
|
||||
return protectedWeekYearTokens.indexOf(token) !== -1;
|
||||
}
|
||||
export function throwProtectedError(token, format, input) {
|
||||
if (token === 'YYYY') {
|
||||
throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
|
||||
} else if (token === 'YY') {
|
||||
throw new RangeError("Use `yy` instead of `YY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
|
||||
} else if (token === 'D') {
|
||||
throw new RangeError("Use `d` instead of `D` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
|
||||
} else if (token === 'DD') {
|
||||
throw new RangeError("Use `dd` instead of `DD` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));
|
||||
}
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
export default function requiredArgs(required, args) {
|
||||
if (args.length < required) {
|
||||
throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
var roundingMap = {
|
||||
ceil: Math.ceil,
|
||||
round: Math.round,
|
||||
floor: Math.floor,
|
||||
trunc: function trunc(value) {
|
||||
return value < 0 ? Math.ceil(value) : Math.floor(value);
|
||||
} // Math.trunc is not supported by IE
|
||||
};
|
||||
|
||||
var defaultRoundingMethod = 'trunc';
|
||||
export function getRoundingMethod(method) {
|
||||
return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
import toDate from "../../toDate/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
import toInteger from "../toInteger/index.js";
|
||||
import { getDefaultOptions } from "../defaultOptions/index.js";
|
||||
export default function setUTCDay(dirtyDate, dirtyDay, options) {
|
||||
var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
|
||||
requiredArgs(2, arguments);
|
||||
var defaultOptions = getDefaultOptions();
|
||||
var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);
|
||||
|
||||
// Test if weekStartsOn is between 0 and 6 _and_ is not NaN
|
||||
if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
|
||||
throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
|
||||
}
|
||||
var date = toDate(dirtyDate);
|
||||
var day = toInteger(dirtyDay);
|
||||
var currentDay = date.getUTCDay();
|
||||
var remainder = day % 7;
|
||||
var dayIndex = (remainder + 7) % 7;
|
||||
var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;
|
||||
date.setUTCDate(date.getUTCDate() + diff);
|
||||
return date;
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import toDate from "../../toDate/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
import toInteger from "../toInteger/index.js";
|
||||
export default function setUTCISODay(dirtyDate, dirtyDay) {
|
||||
requiredArgs(2, arguments);
|
||||
var day = toInteger(dirtyDay);
|
||||
if (day % 7 === 0) {
|
||||
day = day - 7;
|
||||
}
|
||||
var weekStartsOn = 1;
|
||||
var date = toDate(dirtyDate);
|
||||
var currentDay = date.getUTCDay();
|
||||
var remainder = day % 7;
|
||||
var dayIndex = (remainder + 7) % 7;
|
||||
var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;
|
||||
date.setUTCDate(date.getUTCDate() + diff);
|
||||
return date;
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
import toInteger from "../toInteger/index.js";
|
||||
import toDate from "../../toDate/index.js";
|
||||
import getUTCISOWeek from "../getUTCISOWeek/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
export default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {
|
||||
requiredArgs(2, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var isoWeek = toInteger(dirtyISOWeek);
|
||||
var diff = getUTCISOWeek(date) - isoWeek;
|
||||
date.setUTCDate(date.getUTCDate() - diff * 7);
|
||||
return date;
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
import toInteger from "../toInteger/index.js";
|
||||
import toDate from "../../toDate/index.js";
|
||||
import getUTCWeek from "../getUTCWeek/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
export default function setUTCWeek(dirtyDate, dirtyWeek, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var week = toInteger(dirtyWeek);
|
||||
var diff = getUTCWeek(date, options) - week;
|
||||
date.setUTCDate(date.getUTCDate() - diff * 7);
|
||||
return date;
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
import toDate from "../../toDate/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
export default function startOfUTCISOWeek(dirtyDate) {
|
||||
requiredArgs(1, arguments);
|
||||
var weekStartsOn = 1;
|
||||
var date = toDate(dirtyDate);
|
||||
var day = date.getUTCDay();
|
||||
var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
||||
date.setUTCDate(date.getUTCDate() - diff);
|
||||
date.setUTCHours(0, 0, 0, 0);
|
||||
return date;
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
import getUTCISOWeekYear from "../getUTCISOWeekYear/index.js";
|
||||
import startOfUTCISOWeek from "../startOfUTCISOWeek/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
export default function startOfUTCISOWeekYear(dirtyDate) {
|
||||
requiredArgs(1, arguments);
|
||||
var year = getUTCISOWeekYear(dirtyDate);
|
||||
var fourthOfJanuary = new Date(0);
|
||||
fourthOfJanuary.setUTCFullYear(year, 0, 4);
|
||||
fourthOfJanuary.setUTCHours(0, 0, 0, 0);
|
||||
var date = startOfUTCISOWeek(fourthOfJanuary);
|
||||
return date;
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
import toDate from "../../toDate/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
import toInteger from "../toInteger/index.js";
|
||||
import { getDefaultOptions } from "../defaultOptions/index.js";
|
||||
export default function startOfUTCWeek(dirtyDate, options) {
|
||||
var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
|
||||
requiredArgs(1, arguments);
|
||||
var defaultOptions = getDefaultOptions();
|
||||
var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);
|
||||
|
||||
// Test if weekStartsOn is between 0 and 6 _and_ is not NaN
|
||||
if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
|
||||
throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
|
||||
}
|
||||
var date = toDate(dirtyDate);
|
||||
var day = date.getUTCDay();
|
||||
var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
||||
date.setUTCDate(date.getUTCDate() - diff);
|
||||
date.setUTCHours(0, 0, 0, 0);
|
||||
return date;
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import getUTCWeekYear from "../getUTCWeekYear/index.js";
|
||||
import requiredArgs from "../requiredArgs/index.js";
|
||||
import startOfUTCWeek from "../startOfUTCWeek/index.js";
|
||||
import toInteger from "../toInteger/index.js";
|
||||
import { getDefaultOptions } from "../defaultOptions/index.js";
|
||||
export default function startOfUTCWeekYear(dirtyDate, options) {
|
||||
var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;
|
||||
requiredArgs(1, arguments);
|
||||
var defaultOptions = getDefaultOptions();
|
||||
var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);
|
||||
var year = getUTCWeekYear(dirtyDate, options);
|
||||
var firstWeek = new Date(0);
|
||||
firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);
|
||||
firstWeek.setUTCHours(0, 0, 0, 0);
|
||||
var date = startOfUTCWeek(firstWeek, options);
|
||||
return date;
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
import addLeadingZeros from "../addLeadingZeros/index.js";
|
||||
import { setDefaultOptions } from "../defaultOptions/index.js";
|
||||
export function assertType(_) {}
|
||||
export function resetDefaultOptions() {
|
||||
setDefaultOptions({});
|
||||
}
|
||||
|
||||
// This makes sure we create the consistent offsets across timezones, no matter where these tests are ran.
|
||||
export function generateOffset(originalDate) {
|
||||
// Add the timezone.
|
||||
var offset = '';
|
||||
var tzOffset = originalDate.getTimezoneOffset();
|
||||
if (tzOffset !== 0) {
|
||||
var absoluteOffset = Math.abs(tzOffset);
|
||||
var hourOffset = addLeadingZeros(Math.floor(absoluteOffset / 60), 2);
|
||||
var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2);
|
||||
// If less than 0, the sign is +, because it is ahead of time.
|
||||
var sign = tzOffset < 0 ? '+' : '-';
|
||||
offset = "".concat(sign).concat(hourOffset, ":").concat(minuteOffset);
|
||||
} else {
|
||||
offset = 'Z';
|
||||
}
|
||||
return offset;
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
export default function toInteger(dirtyNumber) {
|
||||
if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
|
||||
return NaN;
|
||||
}
|
||||
var number = Number(dirtyNumber);
|
||||
if (isNaN(number)) {
|
||||
return number;
|
||||
}
|
||||
return number < 0 ? Math.ceil(number) : Math.floor(number);
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { add } from 'date-fns'
|
||||
export default add
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
||||
import addDays from "../addDays/index.js";
|
||||
import addMonths from "../addMonths/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
/**
|
||||
* @name add
|
||||
* @category Common Helpers
|
||||
* @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
*
|
||||
* | Key | Description |
|
||||
* |----------------|------------------------------------|
|
||||
* | years | Amount of years to be added |
|
||||
* | months | Amount of months to be added |
|
||||
* | weeks | Amount of weeks to be added |
|
||||
* | days | Amount of days to be added |
|
||||
* | hours | Amount of hours to be added |
|
||||
* | minutes | Amount of minutes to be added |
|
||||
* | seconds | Amount of seconds to be added |
|
||||
*
|
||||
* All values default to 0
|
||||
*
|
||||
* @returns {Date} the new date with the seconds added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add the following duration to 1 September 2014, 10:19:50
|
||||
* const result = add(new Date(2014, 8, 1, 10, 19, 50), {
|
||||
* years: 2,
|
||||
* months: 9,
|
||||
* weeks: 1,
|
||||
* days: 7,
|
||||
* hours: 5,
|
||||
* minutes: 9,
|
||||
* seconds: 30,
|
||||
* })
|
||||
* //=> Thu Jun 15 2017 15:29:20
|
||||
*/
|
||||
export default function add(dirtyDate, duration) {
|
||||
requiredArgs(2, arguments);
|
||||
if (!duration || _typeof(duration) !== 'object') return new Date(NaN);
|
||||
var years = duration.years ? toInteger(duration.years) : 0;
|
||||
var months = duration.months ? toInteger(duration.months) : 0;
|
||||
var weeks = duration.weeks ? toInteger(duration.weeks) : 0;
|
||||
var days = duration.days ? toInteger(duration.days) : 0;
|
||||
var hours = duration.hours ? toInteger(duration.hours) : 0;
|
||||
var minutes = duration.minutes ? toInteger(duration.minutes) : 0;
|
||||
var seconds = duration.seconds ? toInteger(duration.seconds) : 0;
|
||||
|
||||
// Add years and months
|
||||
var date = toDate(dirtyDate);
|
||||
var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date;
|
||||
|
||||
// Add weeks and days
|
||||
var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;
|
||||
|
||||
// Add days, hours, minutes and seconds
|
||||
var minutesToAdd = minutes + hours * 60;
|
||||
var secondsToAdd = seconds + minutesToAdd * 60;
|
||||
var msToAdd = secondsToAdd * 1000;
|
||||
var finalDate = new Date(dateWithDays.getTime() + msToAdd);
|
||||
return finalDate;
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, duration: Duration) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addBusinessDays } from 'date-fns'
|
||||
export default addBusinessDays
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
import isWeekend from "../isWeekend/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import isSunday from "../isSunday/index.js";
|
||||
import isSaturday from "../isSaturday/index.js";
|
||||
/**
|
||||
* @name addBusinessDays
|
||||
* @category Day Helpers
|
||||
* @summary Add the specified number of business days (mon - fri) to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of business days (mon - fri) to the given date, ignoring weekends.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of business days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the business days added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 10 business days to 1 September 2014:
|
||||
* const result = addBusinessDays(new Date(2014, 8, 1), 10)
|
||||
* //=> Mon Sep 15 2014 00:00:00 (skipped weekend days)
|
||||
*/
|
||||
export default function addBusinessDays(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var startedOnWeekend = isWeekend(date);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
if (isNaN(amount)) return new Date(NaN);
|
||||
var hours = date.getHours();
|
||||
var sign = amount < 0 ? -1 : 1;
|
||||
var fullWeeks = toInteger(amount / 5);
|
||||
date.setDate(date.getDate() + fullWeeks * 7);
|
||||
|
||||
// Get remaining days not part of a full week
|
||||
var restDays = Math.abs(amount % 5);
|
||||
|
||||
// Loops over remaining days
|
||||
while (restDays > 0) {
|
||||
date.setDate(date.getDate() + sign);
|
||||
if (!isWeekend(date)) restDays -= 1;
|
||||
}
|
||||
|
||||
// If the date is a weekend day and we reduce a dividable of
|
||||
// 5 from it, we land on a weekend date.
|
||||
// To counter this, we add days accordingly to land on the next business day
|
||||
if (startedOnWeekend && isWeekend(date) && amount !== 0) {
|
||||
// If we're reducing days, we want to add days until we land on a weekday
|
||||
// If we're adding days we want to reduce days until we land on a weekday
|
||||
if (isSaturday(date)) date.setDate(date.getDate() + (sign < 0 ? 2 : -1));
|
||||
if (isSunday(date)) date.setDate(date.getDate() + (sign < 0 ? 1 : -2));
|
||||
}
|
||||
|
||||
// Restore hours to avoid DST lag
|
||||
date.setHours(hours);
|
||||
return date;
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addDays } from 'date-fns'
|
||||
export default addDays
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name addDays
|
||||
* @category Day Helpers
|
||||
* @summary Add the specified number of days to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of days to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} - the new date with the days added
|
||||
* @throws {TypeError} - 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 10 days to 1 September 2014:
|
||||
* const result = addDays(new Date(2014, 8, 1), 10)
|
||||
* //=> Thu Sep 11 2014 00:00:00
|
||||
*/
|
||||
export default function addDays(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
if (isNaN(amount)) {
|
||||
return new Date(NaN);
|
||||
}
|
||||
if (!amount) {
|
||||
// If 0 days, no-op to avoid changing times in the hour before end of DST
|
||||
return date;
|
||||
}
|
||||
date.setDate(date.getDate() + amount);
|
||||
return date;
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addHours } from 'date-fns'
|
||||
export default addHours
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import addMilliseconds from "../addMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
var MILLISECONDS_IN_HOUR = 3600000;
|
||||
|
||||
/**
|
||||
* @name addHours
|
||||
* @category Hour Helpers
|
||||
* @summary Add the specified number of hours to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of hours to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the hours added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 2 hours to 10 July 2014 23:00:00:
|
||||
* const result = addHours(new Date(2014, 6, 10, 23, 0), 2)
|
||||
* //=> Fri Jul 11 2014 01:00:00
|
||||
*/
|
||||
export default function addHours(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addISOWeekYears } from 'date-fns'
|
||||
export default addISOWeekYears
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import getISOWeekYear from "../getISOWeekYear/index.js";
|
||||
import setISOWeekYear from "../setISOWeekYear/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name addISOWeekYears
|
||||
* @category ISO Week-Numbering Year Helpers
|
||||
* @summary Add the specified number of ISO week-numbering years to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of ISO week-numbering years to the given date.
|
||||
*
|
||||
* ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of ISO week-numbering years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the ISO week-numbering years added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 5 ISO week-numbering years to 2 July 2010:
|
||||
* const result = addISOWeekYears(new Date(2010, 6, 2), 5)
|
||||
* //=> Fri Jun 26 2015 00:00:00
|
||||
*/
|
||||
export default function addISOWeekYears(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
return setISOWeekYear(dirtyDate, getISOWeekYear(dirtyDate) + amount);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addMilliseconds } from 'date-fns'
|
||||
export default addMilliseconds
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name addMilliseconds
|
||||
* @category Millisecond Helpers
|
||||
* @summary Add the specified number of milliseconds to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of milliseconds to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the milliseconds added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 750 milliseconds to 10 July 2014 12:45:30.000:
|
||||
* const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)
|
||||
* //=> Thu Jul 10 2014 12:45:30.750
|
||||
*/
|
||||
export default function addMilliseconds(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var timestamp = toDate(dirtyDate).getTime();
|
||||
var amount = toInteger(dirtyAmount);
|
||||
return new Date(timestamp + amount);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addMinutes } from 'date-fns'
|
||||
export default addMinutes
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import addMilliseconds from "../addMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
var MILLISECONDS_IN_MINUTE = 60000;
|
||||
|
||||
/**
|
||||
* @name addMinutes
|
||||
* @category Minute Helpers
|
||||
* @summary Add the specified number of minutes to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of minutes to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the minutes added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 30 minutes to 10 July 2014 12:00:00:
|
||||
* const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)
|
||||
* //=> Thu Jul 10 2014 12:30:00
|
||||
*/
|
||||
export default function addMinutes(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addMonths } from 'date-fns'
|
||||
export default addMonths
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name addMonths
|
||||
* @category Month Helpers
|
||||
* @summary Add the specified number of months to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of months to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the months added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 5 months to 1 September 2014:
|
||||
* const result = addMonths(new Date(2014, 8, 1), 5)
|
||||
* //=> Sun Feb 01 2015 00:00:00
|
||||
*/
|
||||
export default function addMonths(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var date = toDate(dirtyDate);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
if (isNaN(amount)) {
|
||||
return new Date(NaN);
|
||||
}
|
||||
if (!amount) {
|
||||
// If 0 months, no-op to avoid changing times in the hour before end of DST
|
||||
return date;
|
||||
}
|
||||
var dayOfMonth = date.getDate();
|
||||
|
||||
// The JS Date object supports date math by accepting out-of-bounds values for
|
||||
// month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and
|
||||
// new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we
|
||||
// want except that dates will wrap around the end of a month, meaning that
|
||||
// new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So
|
||||
// we'll default to the end of the desired month by adding 1 to the desired
|
||||
// month and using a date of 0 to back up one day to the end of the desired
|
||||
// month.
|
||||
var endOfDesiredMonth = new Date(date.getTime());
|
||||
endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);
|
||||
var daysInMonth = endOfDesiredMonth.getDate();
|
||||
if (dayOfMonth >= daysInMonth) {
|
||||
// If we're already at the end of the month, then this is the correct date
|
||||
// and we're done.
|
||||
return endOfDesiredMonth;
|
||||
} else {
|
||||
// Otherwise, we now know that setting the original day-of-month value won't
|
||||
// cause an overflow, so set the desired day-of-month. Note that we can't
|
||||
// just set the date of `endOfDesiredMonth` because that object may have had
|
||||
// its time changed in the unusual case where where a DST transition was on
|
||||
// the last day of the month and its local time was in the hour skipped or
|
||||
// repeated next to a DST transition. So we use `date` instead which is
|
||||
// guaranteed to still have the original time.
|
||||
date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);
|
||||
return date;
|
||||
}
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addQuarters } from 'date-fns'
|
||||
export default addQuarters
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import addMonths from "../addMonths/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name addQuarters
|
||||
* @category Quarter Helpers
|
||||
* @summary Add the specified number of year quarters to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of year quarters to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of quarters to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the quarters added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 1 quarter to 1 September 2014:
|
||||
* const result = addQuarters(new Date(2014, 8, 1), 1)
|
||||
* //=> Mon Dec 01 2014 00:00:00
|
||||
*/
|
||||
export default function addQuarters(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
var months = amount * 3;
|
||||
return addMonths(dirtyDate, months);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addSeconds } from 'date-fns'
|
||||
export default addSeconds
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import addMilliseconds from "../addMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name addSeconds
|
||||
* @category Second Helpers
|
||||
* @summary Add the specified number of seconds to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of seconds to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the seconds added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 30 seconds to 10 July 2014 12:45:00:
|
||||
* const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)
|
||||
* //=> Thu Jul 10 2014 12:45:30
|
||||
*/
|
||||
export default function addSeconds(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
return addMilliseconds(dirtyDate, amount * 1000);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addWeeks } from 'date-fns'
|
||||
export default addWeeks
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import addDays from "../addDays/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name addWeeks
|
||||
* @category Week Helpers
|
||||
* @summary Add the specified number of weeks to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of week to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the weeks added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 4 weeks to 1 September 2014:
|
||||
* const result = addWeeks(new Date(2014, 8, 1), 4)
|
||||
* //=> Mon Sep 29 2014 00:00:00
|
||||
*/
|
||||
export default function addWeeks(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
var days = amount * 7;
|
||||
return addDays(dirtyDate, days);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { addYears } from 'date-fns'
|
||||
export default addYears
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
import addMonths from "../addMonths/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name addYears
|
||||
* @category Year Helpers
|
||||
* @summary Add the specified number of years to the given date.
|
||||
*
|
||||
* @description
|
||||
* Add the specified number of years to the given date.
|
||||
*
|
||||
* @param {Date|Number} date - the date to be changed
|
||||
* @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.
|
||||
* @returns {Date} the new date with the years added
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Add 5 years to 1 September 2014:
|
||||
* const result = addYears(new Date(2014, 8, 1), 5)
|
||||
* //=> Sun Sep 01 2019 00:00:00
|
||||
*/
|
||||
export default function addYears(dirtyDate, dirtyAmount) {
|
||||
requiredArgs(2, arguments);
|
||||
var amount = toInteger(dirtyAmount);
|
||||
return addMonths(dirtyDate, amount * 12);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, amount: number) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { areIntervalsOverlapping } from 'date-fns'
|
||||
export default areIntervalsOverlapping
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name areIntervalsOverlapping
|
||||
* @category Interval Helpers
|
||||
* @summary Is the given time interval overlapping with another time interval?
|
||||
*
|
||||
* @description
|
||||
* Is the given time interval overlapping with another time interval? Adjacent intervals do not count as overlapping.
|
||||
*
|
||||
* @param {Interval} intervalLeft - the first interval to compare. See [Interval]{@link https://date-fns.org/docs/Interval}
|
||||
* @param {Interval} intervalRight - the second interval to compare. See [Interval]{@link https://date-fns.org/docs/Interval}
|
||||
* @param {Object} [options] - the object with options
|
||||
* @param {Boolean} [options.inclusive=false] - whether the comparison is inclusive or not
|
||||
* @returns {Boolean} whether the time intervals are overlapping
|
||||
* @throws {TypeError} 2 arguments required
|
||||
* @throws {RangeError} The start of an interval cannot be after its end
|
||||
* @throws {RangeError} Date in interval cannot be `Invalid Date`
|
||||
*
|
||||
* @example
|
||||
* // For overlapping time intervals:
|
||||
* areIntervalsOverlapping(
|
||||
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
||||
* { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }
|
||||
* )
|
||||
* //=> true
|
||||
*
|
||||
* @example
|
||||
* // For non-overlapping time intervals:
|
||||
* areIntervalsOverlapping(
|
||||
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
||||
* { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }
|
||||
* )
|
||||
* //=> false
|
||||
*
|
||||
* @example
|
||||
* // For adjacent time intervals:
|
||||
* areIntervalsOverlapping(
|
||||
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
||||
* { start: new Date(2014, 0, 20), end: new Date(2014, 0, 30) }
|
||||
* )
|
||||
* //=> false
|
||||
*
|
||||
* @example
|
||||
* // Using the inclusive option:
|
||||
* areIntervalsOverlapping(
|
||||
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
||||
* { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) }
|
||||
* )
|
||||
* //=> false
|
||||
* areIntervalsOverlapping(
|
||||
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
||||
* { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) },
|
||||
* { inclusive: true }
|
||||
* )
|
||||
* //=> true
|
||||
*/
|
||||
export default function areIntervalsOverlapping(intervalLeft, intervalRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var leftStartTime = toDate(intervalLeft === null || intervalLeft === void 0 ? void 0 : intervalLeft.start).getTime();
|
||||
var leftEndTime = toDate(intervalLeft === null || intervalLeft === void 0 ? void 0 : intervalLeft.end).getTime();
|
||||
var rightStartTime = toDate(intervalRight === null || intervalRight === void 0 ? void 0 : intervalRight.start).getTime();
|
||||
var rightEndTime = toDate(intervalRight === null || intervalRight === void 0 ? void 0 : intervalRight.end).getTime();
|
||||
|
||||
// Throw an exception if start date is after end date or if any date is `Invalid Date`
|
||||
if (!(leftStartTime <= leftEndTime && rightStartTime <= rightEndTime)) {
|
||||
throw new RangeError('Invalid interval');
|
||||
}
|
||||
if (options !== null && options !== void 0 && options.inclusive) {
|
||||
return leftStartTime <= rightEndTime && rightStartTime <= leftEndTime;
|
||||
}
|
||||
return leftStartTime < rightEndTime && rightStartTime < leftEndTime;
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
intervalLeft: Interval,
|
||||
intervalRight: Interval,
|
||||
options?: {
|
||||
inclusive?: boolean,
|
||||
}
|
||||
) => boolean
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { clamp } from 'date-fns'
|
||||
export default clamp
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
import max from "../max/index.js";
|
||||
import min from "../min/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name clamp
|
||||
* @category Interval Helpers
|
||||
* @summary Return a date bounded by the start and the end of the given interval
|
||||
*
|
||||
* @description
|
||||
* Clamps a date to the lower bound with the start of the interval and the upper
|
||||
* bound with the end of the interval.
|
||||
*
|
||||
* - When the date is less than the start of the interval, the start is returned.
|
||||
* - When the date is greater than the end of the interval, the end is returned.
|
||||
* - Otherwise the date is returned.
|
||||
*
|
||||
* @example
|
||||
* // What is Mar, 21, 2021 bounded to an interval starting at Mar, 22, 2021 and ending at Apr, 01, 2021
|
||||
* const result = clamp(new Date(2021, 2, 21), {
|
||||
* start: new Date(2021, 2, 22),
|
||||
* end: new Date(2021, 3, 1),
|
||||
* })
|
||||
* //=> Mon Mar 22 2021 00:00:00
|
||||
*
|
||||
* @param {Date | Number} date - the date to be bounded
|
||||
* @param {Interval} interval - the interval to bound to
|
||||
* @returns {Date} the date bounded by the start and the end of the interval
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*/
|
||||
export default function clamp(date, _ref) {
|
||||
var start = _ref.start,
|
||||
end = _ref.end;
|
||||
requiredArgs(2, arguments);
|
||||
return min([max([date, start]), end]);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (date: Date | number, interval: Interval) => Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { closestIndexTo } from 'date-fns'
|
||||
export default closestIndexTo
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name closestIndexTo
|
||||
* @category Common Helpers
|
||||
* @summary Return an index of the closest date from the array comparing to the given date.
|
||||
*
|
||||
* @description
|
||||
* Return an index of the closest date from the array comparing to the given date.
|
||||
*
|
||||
* @param {Date | Number} dateToCompare - the date to compare with
|
||||
* @param {Array<Date> | Array<number>} datesArray - the array to search
|
||||
* @returns {Number | undefined} an index of the date closest to the given date or undefined if no valid value is given
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Which date is closer to 6 September 2015?
|
||||
* const dateToCompare = new Date(2015, 8, 6)
|
||||
* const datesArray = [
|
||||
* new Date(2015, 0, 1),
|
||||
* new Date(2016, 0, 1),
|
||||
* new Date(2017, 0, 1)
|
||||
* ]
|
||||
* const result = closestIndexTo(dateToCompare, datesArray)
|
||||
* //=> 1
|
||||
*/
|
||||
export default function closestIndexTo(dirtyDateToCompare, dirtyDatesArray) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateToCompare = toDate(dirtyDateToCompare);
|
||||
if (isNaN(Number(dateToCompare))) return NaN;
|
||||
var timeToCompare = dateToCompare.getTime();
|
||||
var datesArray;
|
||||
// `dirtyDatesArray` is undefined or null
|
||||
if (dirtyDatesArray == null) {
|
||||
datesArray = [];
|
||||
|
||||
// `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method
|
||||
} else if (typeof dirtyDatesArray.forEach === 'function') {
|
||||
datesArray = dirtyDatesArray;
|
||||
|
||||
// If `dirtyDatesArray` is Array-like Object, convert to Array. Otherwise, make it empty Array
|
||||
} else {
|
||||
datesArray = Array.prototype.slice.call(dirtyDatesArray);
|
||||
}
|
||||
var result;
|
||||
var minDistance;
|
||||
datesArray.forEach(function (dirtyDate, index) {
|
||||
var currentDate = toDate(dirtyDate);
|
||||
if (isNaN(Number(currentDate))) {
|
||||
result = NaN;
|
||||
minDistance = NaN;
|
||||
return;
|
||||
}
|
||||
var distance = Math.abs(timeToCompare - currentDate.getTime());
|
||||
if (result == null || distance < Number(minDistance)) {
|
||||
result = index;
|
||||
minDistance = distance;
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateToCompare: Date | number,
|
||||
datesArray: (Date | number)[]
|
||||
) => ?number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { closestTo } from 'date-fns'
|
||||
export default closestTo
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name closestTo
|
||||
* @category Common Helpers
|
||||
* @summary Return a date from the array closest to the given date.
|
||||
*
|
||||
* @description
|
||||
* Return a date from the array closest to the given date.
|
||||
*
|
||||
* @param {Date | Number} dateToCompare - the date to compare with
|
||||
* @param {Array<Date> | Array<number>} datesArray - the array to search
|
||||
* @returns {Date | undefined} the date from the array closest to the given date or undefined if no valid value is given
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?
|
||||
* const dateToCompare = new Date(2015, 8, 6)
|
||||
* const result = closestTo(dateToCompare, [
|
||||
* new Date(2000, 0, 1),
|
||||
* new Date(2030, 0, 1)
|
||||
* ])
|
||||
* //=> Tue Jan 01 2030 00:00:00
|
||||
*/
|
||||
export default function closestTo(dirtyDateToCompare, dirtyDatesArray) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateToCompare = toDate(dirtyDateToCompare);
|
||||
if (isNaN(Number(dateToCompare))) return new Date(NaN);
|
||||
var timeToCompare = dateToCompare.getTime();
|
||||
var datesArray;
|
||||
// `dirtyDatesArray` is undefined or null
|
||||
if (dirtyDatesArray == null) {
|
||||
datesArray = [];
|
||||
|
||||
// `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method
|
||||
} else if (typeof dirtyDatesArray.forEach === 'function') {
|
||||
datesArray = dirtyDatesArray;
|
||||
|
||||
// If `dirtyDatesArray` is Array-like Object, convert to Array. Otherwise, make it empty Array
|
||||
} else {
|
||||
datesArray = Array.prototype.slice.call(dirtyDatesArray);
|
||||
}
|
||||
var result;
|
||||
var minDistance;
|
||||
datesArray.forEach(function (dirtyDate) {
|
||||
var currentDate = toDate(dirtyDate);
|
||||
if (isNaN(Number(currentDate))) {
|
||||
result = new Date(NaN);
|
||||
minDistance = NaN;
|
||||
return;
|
||||
}
|
||||
var distance = Math.abs(timeToCompare - currentDate.getTime());
|
||||
if (result == null || distance < Number(minDistance)) {
|
||||
result = currentDate;
|
||||
minDistance = distance;
|
||||
}
|
||||
});
|
||||
return result;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateToCompare: Date | number,
|
||||
datesArray: (Date | number)[]
|
||||
) => ?Date
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { compareAsc } from 'date-fns'
|
||||
export default compareAsc
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name compareAsc
|
||||
* @category Common Helpers
|
||||
* @summary Compare the two dates and return -1, 0 or 1.
|
||||
*
|
||||
* @description
|
||||
* Compare the two dates and return 1 if the first date is after the second,
|
||||
* -1 if the first date is before the second or 0 if dates are equal.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the first date to compare
|
||||
* @param {Date|Number} dateRight - the second date to compare
|
||||
* @returns {Number} the result of the comparison
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Compare 11 February 1987 and 10 July 1989:
|
||||
* const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))
|
||||
* //=> -1
|
||||
*
|
||||
* @example
|
||||
* // Sort the array of dates:
|
||||
* const result = [
|
||||
* new Date(1995, 6, 2),
|
||||
* new Date(1987, 1, 11),
|
||||
* new Date(1989, 6, 10)
|
||||
* ].sort(compareAsc)
|
||||
* //=> [
|
||||
* // Wed Feb 11 1987 00:00:00,
|
||||
* // Mon Jul 10 1989 00:00:00,
|
||||
* // Sun Jul 02 1995 00:00:00
|
||||
* // ]
|
||||
*/
|
||||
export default function compareAsc(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
var diff = dateLeft.getTime() - dateRight.getTime();
|
||||
if (diff < 0) {
|
||||
return -1;
|
||||
} else if (diff > 0) {
|
||||
return 1;
|
||||
// Return 0 if diff is 0; return NaN if diff is NaN
|
||||
} else {
|
||||
return diff;
|
||||
}
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { compareDesc } from 'date-fns'
|
||||
export default compareDesc
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name compareDesc
|
||||
* @category Common Helpers
|
||||
* @summary Compare the two dates reverse chronologically and return -1, 0 or 1.
|
||||
*
|
||||
* @description
|
||||
* Compare the two dates and return -1 if the first date is after the second,
|
||||
* 1 if the first date is before the second or 0 if dates are equal.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the first date to compare
|
||||
* @param {Date|Number} dateRight - the second date to compare
|
||||
* @returns {Number} the result of the comparison
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // Compare 11 February 1987 and 10 July 1989 reverse chronologically:
|
||||
* const result = compareDesc(new Date(1987, 1, 11), new Date(1989, 6, 10))
|
||||
* //=> 1
|
||||
*
|
||||
* @example
|
||||
* // Sort the array of dates in reverse chronological order:
|
||||
* const result = [
|
||||
* new Date(1995, 6, 2),
|
||||
* new Date(1987, 1, 11),
|
||||
* new Date(1989, 6, 10)
|
||||
* ].sort(compareDesc)
|
||||
* //=> [
|
||||
* // Sun Jul 02 1995 00:00:00,
|
||||
* // Mon Jul 10 1989 00:00:00,
|
||||
* // Wed Feb 11 1987 00:00:00
|
||||
* // ]
|
||||
*/
|
||||
export default function compareDesc(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
var diff = dateLeft.getTime() - dateRight.getTime();
|
||||
if (diff > 0) {
|
||||
return -1;
|
||||
} else if (diff < 0) {
|
||||
return 1;
|
||||
// Return 0 if diff is 0; return NaN if diff is NaN
|
||||
} else {
|
||||
return diff;
|
||||
}
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export const daysInWeek: number
|
||||
export const daysInYear: number
|
||||
export const maxTime: number
|
||||
export const millisecondsInMinute: number
|
||||
export const millisecondsInHour: number
|
||||
export const millisecondsInSecond: number
|
||||
export const minTime: number
|
||||
export const minutesInHour: number
|
||||
export const monthsInQuarter: number
|
||||
export const monthsInYear: number
|
||||
export const quartersInYear: number
|
||||
export const secondsInHour: number
|
||||
export const secondsInMinute: number
|
||||
export const secondsInDay: number
|
||||
export const secondsInWeek: number
|
||||
export const secondsInYear: number
|
||||
export const secondsInMonth: number
|
||||
export const secondsInQuarter: number
|
||||
+183
@@ -0,0 +1,183 @@
|
||||
/**
|
||||
* Days in 1 week.
|
||||
*
|
||||
* @name daysInWeek
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var daysInWeek = 7;
|
||||
|
||||
/**
|
||||
* Days in 1 year
|
||||
* One years equals 365.2425 days according to the formula:
|
||||
*
|
||||
* > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.
|
||||
* > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days
|
||||
*
|
||||
* @name daysInYear
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var daysInYear = 365.2425;
|
||||
|
||||
/**
|
||||
* Maximum allowed time.
|
||||
*
|
||||
* @name maxTime
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;
|
||||
|
||||
/**
|
||||
* Milliseconds in 1 minute
|
||||
*
|
||||
* @name millisecondsInMinute
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var millisecondsInMinute = 60000;
|
||||
|
||||
/**
|
||||
* Milliseconds in 1 hour
|
||||
*
|
||||
* @name millisecondsInHour
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var millisecondsInHour = 3600000;
|
||||
|
||||
/**
|
||||
* Milliseconds in 1 second
|
||||
*
|
||||
* @name millisecondsInSecond
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var millisecondsInSecond = 1000;
|
||||
|
||||
/**
|
||||
* Minimum allowed time.
|
||||
*
|
||||
* @name minTime
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var minTime = -maxTime;
|
||||
|
||||
/**
|
||||
* Minutes in 1 hour
|
||||
*
|
||||
* @name minutesInHour
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var minutesInHour = 60;
|
||||
|
||||
/**
|
||||
* Months in 1 quarter
|
||||
*
|
||||
* @name monthsInQuarter
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var monthsInQuarter = 3;
|
||||
|
||||
/**
|
||||
* Months in 1 year
|
||||
*
|
||||
* @name monthsInYear
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var monthsInYear = 12;
|
||||
|
||||
/**
|
||||
* Quarters in 1 year
|
||||
*
|
||||
* @name quartersInYear
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var quartersInYear = 4;
|
||||
|
||||
/**
|
||||
* Seconds in 1 hour
|
||||
*
|
||||
* @name secondsInHour
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInHour = 3600;
|
||||
|
||||
/**
|
||||
* Seconds in 1 minute
|
||||
*
|
||||
* @name secondsInMinute
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInMinute = 60;
|
||||
|
||||
/**
|
||||
* Seconds in 1 day
|
||||
*
|
||||
* @name secondsInDay
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInDay = secondsInHour * 24;
|
||||
|
||||
/**
|
||||
* Seconds in 1 week
|
||||
*
|
||||
* @name secondsInWeek
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInWeek = secondsInDay * 7;
|
||||
|
||||
/**
|
||||
* Seconds in 1 year
|
||||
*
|
||||
* @name secondsInYear
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInYear = secondsInDay * daysInYear;
|
||||
|
||||
/**
|
||||
* Seconds in 1 month
|
||||
*
|
||||
* @name secondsInMonth
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInMonth = secondsInYear / 12;
|
||||
|
||||
/**
|
||||
* Seconds in 1 quarter
|
||||
*
|
||||
* @name secondsInQuarter
|
||||
* @constant
|
||||
* @type {number}
|
||||
* @default
|
||||
*/
|
||||
export var secondsInQuarter = secondsInMonth * 3;
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// @flow
|
||||
|
||||
declare export var daysInWeek: number
|
||||
declare export var maxTime: number
|
||||
declare export var millisecondsInMinute: number
|
||||
declare export var millisecondsInHour: number
|
||||
declare export var millisecondsInSecond: number
|
||||
declare export var minTime: number
|
||||
declare export var minutesInHour: number
|
||||
declare export var monthsInQuarter: number
|
||||
declare export var monthsInYear: number
|
||||
declare export var quartersInYear: number
|
||||
declare export var secondsInHour: number
|
||||
declare export var secondsInMinute: number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { daysToWeeks } from 'date-fns'
|
||||
export default daysToWeeks
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import { daysInWeek } from "../constants/index.js";
|
||||
/**
|
||||
* @name daysToWeeks
|
||||
* @category Conversion Helpers
|
||||
* @summary Convert days to weeks.
|
||||
*
|
||||
* @description
|
||||
* Convert a number of days to a full number of weeks.
|
||||
*
|
||||
* @param {number} days - number of days to be converted
|
||||
*
|
||||
* @returns {number} the number of days converted in weeks
|
||||
* @throws {TypeError} 1 argument required
|
||||
*
|
||||
* @example
|
||||
* // Convert 14 days to weeks:
|
||||
* const result = daysToWeeks(14)
|
||||
* //=> 2
|
||||
*
|
||||
* @example
|
||||
* // It uses floor rounding:
|
||||
* const result = daysToWeeks(13)
|
||||
* //=> 1
|
||||
*/
|
||||
export default function daysToWeeks(days) {
|
||||
requiredArgs(1, arguments);
|
||||
var weeks = days / daysInWeek;
|
||||
return Math.floor(weeks);
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (days: number) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInBusinessDays } from 'date-fns'
|
||||
export default differenceInBusinessDays
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
import addDays from "../addDays/index.js";
|
||||
import differenceInCalendarDays from "../differenceInCalendarDays/index.js";
|
||||
import isSameDay from "../isSameDay/index.js";
|
||||
import isValid from "../isValid/index.js";
|
||||
import isWeekend from "../isWeekend/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import toInteger from "../_lib/toInteger/index.js";
|
||||
/**
|
||||
* @name differenceInBusinessDays
|
||||
* @category Day Helpers
|
||||
* @summary Get the number of business days between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of business day periods between the given dates.
|
||||
* Business days being days that arent in the weekend.
|
||||
* Like `differenceInCalendarDays`, the function removes the times from
|
||||
* the dates before calculating the difference.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of business days
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many business days are between
|
||||
* // 10 January 2014 and 20 July 2014?
|
||||
* const result = differenceInBusinessDays(
|
||||
* new Date(2014, 6, 20),
|
||||
* new Date(2014, 0, 10)
|
||||
* )
|
||||
* //=> 136
|
||||
*
|
||||
* // How many business days are between
|
||||
* // 30 November 2021 and 1 November 2021?
|
||||
* const result = differenceInBusinessDays(
|
||||
* new Date(2021, 10, 30),
|
||||
* new Date(2021, 10, 1)
|
||||
* )
|
||||
* //=> 21
|
||||
*
|
||||
* // How many business days are between
|
||||
* // 1 November 2021 and 1 December 2021?
|
||||
* const result = differenceInBusinessDays(
|
||||
* new Date(2021, 10, 1),
|
||||
* new Date(2021, 11, 1)
|
||||
* )
|
||||
* //=> -22
|
||||
*
|
||||
* // How many business days are between
|
||||
* // 1 November 2021 and 1 November 2021 ?
|
||||
* const result = differenceInBusinessDays(
|
||||
* new Date(2021, 10, 1),
|
||||
* new Date(2021, 10, 1)
|
||||
* )
|
||||
* //=> 0
|
||||
*/
|
||||
export default function differenceInBusinessDays(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
if (!isValid(dateLeft) || !isValid(dateRight)) return NaN;
|
||||
var calendarDifference = differenceInCalendarDays(dateLeft, dateRight);
|
||||
var sign = calendarDifference < 0 ? -1 : 1;
|
||||
var weeks = toInteger(calendarDifference / 7);
|
||||
var result = weeks * 5;
|
||||
dateRight = addDays(dateRight, weeks * 7);
|
||||
|
||||
// the loop below will run at most 6 times to account for the remaining days that don't makeup a full week
|
||||
while (!isSameDay(dateLeft, dateRight)) {
|
||||
// sign is used to account for both negative and positive differences
|
||||
result += isWeekend(dateRight) ? 0 : sign;
|
||||
dateRight = addDays(dateRight, sign);
|
||||
}
|
||||
return result === 0 ? 0 : result;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInCalendarDays } from 'date-fns'
|
||||
export default differenceInCalendarDays
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
import getTimezoneOffsetInMilliseconds from "../_lib/getTimezoneOffsetInMilliseconds/index.js";
|
||||
import startOfDay from "../startOfDay/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
var MILLISECONDS_IN_DAY = 86400000;
|
||||
|
||||
/**
|
||||
* @name differenceInCalendarDays
|
||||
* @category Day Helpers
|
||||
* @summary Get the number of calendar days between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of calendar days between the given dates. This means that the times are removed
|
||||
* from the dates and then the difference in days is calculated.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of calendar days
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many calendar days are between
|
||||
* // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?
|
||||
* const result = differenceInCalendarDays(
|
||||
* new Date(2012, 6, 2, 0, 0),
|
||||
* new Date(2011, 6, 2, 23, 0)
|
||||
* )
|
||||
* //=> 366
|
||||
* // How many calendar days are between
|
||||
* // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?
|
||||
* const result = differenceInCalendarDays(
|
||||
* new Date(2011, 6, 3, 0, 1),
|
||||
* new Date(2011, 6, 2, 23, 59)
|
||||
* )
|
||||
* //=> 1
|
||||
*/
|
||||
export default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var startOfDayLeft = startOfDay(dirtyDateLeft);
|
||||
var startOfDayRight = startOfDay(dirtyDateRight);
|
||||
var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);
|
||||
var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);
|
||||
|
||||
// Round the number of days to the nearest integer
|
||||
// because the number of milliseconds in a day is not constant
|
||||
// (e.g. it's different in the day of the daylight saving time clock shift)
|
||||
return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
Generated
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInCalendarISOWeekYears } from 'date-fns'
|
||||
export default differenceInCalendarISOWeekYears
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import getISOWeekYear from "../getISOWeekYear/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name differenceInCalendarISOWeekYears
|
||||
* @category ISO Week-Numbering Year Helpers
|
||||
* @summary Get the number of calendar ISO week-numbering years between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of calendar ISO week-numbering years between the given dates.
|
||||
*
|
||||
* ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of calendar ISO week-numbering years
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?
|
||||
* const result = differenceInCalendarISOWeekYears(
|
||||
* new Date(2012, 0, 1),
|
||||
* new Date(2010, 0, 1)
|
||||
* )
|
||||
* //=> 2
|
||||
*/
|
||||
export default function differenceInCalendarISOWeekYears(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
return getISOWeekYear(dirtyDateLeft) - getISOWeekYear(dirtyDateRight);
|
||||
}
|
||||
Generated
Vendored
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
Generated
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInCalendarISOWeeks } from 'date-fns'
|
||||
export default differenceInCalendarISOWeeks
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
import getTimezoneOffsetInMilliseconds from "../_lib/getTimezoneOffsetInMilliseconds/index.js";
|
||||
import startOfISOWeek from "../startOfISOWeek/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
var MILLISECONDS_IN_WEEK = 604800000;
|
||||
|
||||
/**
|
||||
* @name differenceInCalendarISOWeeks
|
||||
* @category ISO Week Helpers
|
||||
* @summary Get the number of calendar ISO weeks between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of calendar ISO weeks between the given dates.
|
||||
*
|
||||
* ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of calendar ISO weeks
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014?
|
||||
* const result = differenceInCalendarISOWeeks(
|
||||
* new Date(2014, 6, 21),
|
||||
* new Date(2014, 6, 6)
|
||||
* )
|
||||
* //=> 3
|
||||
*/
|
||||
export default function differenceInCalendarISOWeeks(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var startOfISOWeekLeft = startOfISOWeek(dirtyDateLeft);
|
||||
var startOfISOWeekRight = startOfISOWeek(dirtyDateRight);
|
||||
var timestampLeft = startOfISOWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfISOWeekLeft);
|
||||
var timestampRight = startOfISOWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfISOWeekRight);
|
||||
|
||||
// Round the number of days to the nearest integer
|
||||
// because the number of milliseconds in a week is not constant
|
||||
// (e.g. it's different in the week of the daylight saving time clock shift)
|
||||
return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInCalendarMonths } from 'date-fns'
|
||||
export default differenceInCalendarMonths
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name differenceInCalendarMonths
|
||||
* @category Month Helpers
|
||||
* @summary Get the number of calendar months between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of calendar months between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of calendar months
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many calendar months are between 31 January 2014 and 1 September 2014?
|
||||
* const result = differenceInCalendarMonths(
|
||||
* new Date(2014, 8, 1),
|
||||
* new Date(2014, 0, 31)
|
||||
* )
|
||||
* //=> 8
|
||||
*/
|
||||
export default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();
|
||||
var monthDiff = dateLeft.getMonth() - dateRight.getMonth();
|
||||
return yearDiff * 12 + monthDiff;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInCalendarQuarters } from 'date-fns'
|
||||
export default differenceInCalendarQuarters
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
import getQuarter from "../getQuarter/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name differenceInCalendarQuarters
|
||||
* @category Quarter Helpers
|
||||
* @summary Get the number of calendar quarters between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of calendar quarters between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of calendar quarters
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many calendar quarters are between 31 December 2013 and 2 July 2014?
|
||||
* const result = differenceInCalendarQuarters(
|
||||
* new Date(2014, 6, 2),
|
||||
* new Date(2013, 11, 31)
|
||||
* )
|
||||
* //=> 3
|
||||
*/
|
||||
export default function differenceInCalendarQuarters(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();
|
||||
var quarterDiff = getQuarter(dateLeft) - getQuarter(dateRight);
|
||||
return yearDiff * 4 + quarterDiff;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInCalendarWeeks } from 'date-fns'
|
||||
export default differenceInCalendarWeeks
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
import startOfWeek from "../startOfWeek/index.js";
|
||||
import getTimezoneOffsetInMilliseconds from "../_lib/getTimezoneOffsetInMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
var MILLISECONDS_IN_WEEK = 604800000;
|
||||
|
||||
/**
|
||||
* @name differenceInCalendarWeeks
|
||||
* @category Week Helpers
|
||||
* @summary Get the number of calendar weeks between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of calendar weeks between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}
|
||||
* @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)
|
||||
* @returns {Number} the number of calendar weeks
|
||||
* @throws {TypeError} 2 arguments required
|
||||
* @throws {RangeError} `options.weekStartsOn` must be between 0 and 6
|
||||
*
|
||||
* @example
|
||||
* // How many calendar weeks are between 5 July 2014 and 20 July 2014?
|
||||
* const result = differenceInCalendarWeeks(
|
||||
* new Date(2014, 6, 20),
|
||||
* new Date(2014, 6, 5)
|
||||
* )
|
||||
* //=> 3
|
||||
*
|
||||
* @example
|
||||
* // If the week starts on Monday,
|
||||
* // how many calendar weeks are between 5 July 2014 and 20 July 2014?
|
||||
* const result = differenceInCalendarWeeks(
|
||||
* new Date(2014, 6, 20),
|
||||
* new Date(2014, 6, 5),
|
||||
* { weekStartsOn: 1 }
|
||||
* )
|
||||
* //=> 2
|
||||
*/
|
||||
export default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var startOfWeekLeft = startOfWeek(dirtyDateLeft, options);
|
||||
var startOfWeekRight = startOfWeek(dirtyDateRight, options);
|
||||
var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);
|
||||
var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight);
|
||||
|
||||
// Round the number of days to the nearest integer
|
||||
// because the number of milliseconds in a week is not constant
|
||||
// (e.g. it's different in the week of the daylight saving time clock shift)
|
||||
return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number,
|
||||
options?: {
|
||||
locale?: Locale,
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
}
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInCalendarYears } from 'date-fns'
|
||||
export default differenceInCalendarYears
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name differenceInCalendarYears
|
||||
* @category Year Helpers
|
||||
* @summary Get the number of calendar years between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of calendar years between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of calendar years
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many calendar years are between 31 December 2013 and 11 February 2015?
|
||||
* const result = differenceInCalendarYears(
|
||||
* new Date(2015, 1, 11),
|
||||
* new Date(2013, 11, 31)
|
||||
* )
|
||||
* //=> 2
|
||||
*/
|
||||
export default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
return dateLeft.getFullYear() - dateRight.getFullYear();
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInDays } from 'date-fns'
|
||||
export default differenceInDays
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import differenceInCalendarDays from "../differenceInCalendarDays/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js"; // Like `compareAsc` but uses local time not UTC, which is needed
|
||||
// for accurate equality comparisons of UTC timestamps that end up
|
||||
// having the same representation in local time, e.g. one hour before
|
||||
// DST ends vs. the instant that DST ends.
|
||||
function compareLocalAsc(dateLeft, dateRight) {
|
||||
var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();
|
||||
if (diff < 0) {
|
||||
return -1;
|
||||
} else if (diff > 0) {
|
||||
return 1;
|
||||
// Return 0 if diff is 0; return NaN if diff is NaN
|
||||
} else {
|
||||
return diff;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @name differenceInDays
|
||||
* @category Day Helpers
|
||||
* @summary Get the number of full days between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of full day periods between two dates. Fractional days are
|
||||
* truncated towards zero.
|
||||
*
|
||||
* One "full day" is the distance between a local time in one day to the same
|
||||
* local time on the next or previous day. A full day can sometimes be less than
|
||||
* or more than 24 hours if a daylight savings change happens between two dates.
|
||||
*
|
||||
* To ignore DST and only measure exact 24-hour periods, use this instead:
|
||||
* `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.
|
||||
*
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of full days according to the local timezone
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many full days are between
|
||||
* // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?
|
||||
* const result = differenceInDays(
|
||||
* new Date(2012, 6, 2, 0, 0),
|
||||
* new Date(2011, 6, 2, 23, 0)
|
||||
* )
|
||||
* //=> 365
|
||||
* // How many full days are between
|
||||
* // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?
|
||||
* const result = differenceInDays(
|
||||
* new Date(2011, 6, 3, 0, 1),
|
||||
* new Date(2011, 6, 2, 23, 59)
|
||||
* )
|
||||
* //=> 0
|
||||
* // How many full days are between
|
||||
* // 1 March 2020 0:00 and 1 June 2020 0:00 ?
|
||||
* // Note: because local time is used, the
|
||||
* // result will always be 92 days, even in
|
||||
* // time zones where DST starts and the
|
||||
* // period has only 92*24-1 hours.
|
||||
* const result = differenceInDays(
|
||||
* new Date(2020, 5, 1),
|
||||
* new Date(2020, 2, 1)
|
||||
* )
|
||||
//=> 92
|
||||
*/
|
||||
export default function differenceInDays(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
var sign = compareLocalAsc(dateLeft, dateRight);
|
||||
var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));
|
||||
dateLeft.setDate(dateLeft.getDate() - sign * difference);
|
||||
|
||||
// Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full
|
||||
// If so, result must be decreased by 1 in absolute value
|
||||
var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);
|
||||
var result = sign * (difference - isLastDayNotFull);
|
||||
// Prevent negative zero
|
||||
return result === 0 ? 0 : result;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInHours } from 'date-fns'
|
||||
export default differenceInHours
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
import { millisecondsInHour } from "../constants/index.js";
|
||||
import differenceInMilliseconds from "../differenceInMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import { getRoundingMethod } from "../_lib/roundingMethods/index.js";
|
||||
/**
|
||||
* @name differenceInHours
|
||||
* @category Hour Helpers
|
||||
* @summary Get the number of hours between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of hours between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)
|
||||
* @returns {Number} the number of hours
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?
|
||||
* const result = differenceInHours(
|
||||
* new Date(2014, 6, 2, 19, 0),
|
||||
* new Date(2014, 6, 2, 6, 50)
|
||||
* )
|
||||
* //=> 12
|
||||
*/
|
||||
export default function differenceInHours(dateLeft, dateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour;
|
||||
return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number,
|
||||
options?: {
|
||||
roundingMethod?: string,
|
||||
}
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInISOWeekYears } from 'date-fns'
|
||||
export default differenceInISOWeekYears
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import differenceInCalendarISOWeekYears from "../differenceInCalendarISOWeekYears/index.js";
|
||||
import compareAsc from "../compareAsc/index.js";
|
||||
import subISOWeekYears from "../subISOWeekYears/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name differenceInISOWeekYears
|
||||
* @category ISO Week-Numbering Year Helpers
|
||||
* @summary Get the number of full ISO week-numbering years between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of full ISO week-numbering years between the given dates.
|
||||
*
|
||||
* ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of full ISO week-numbering years
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many full ISO week-numbering years are between 1 January 2010 and 1 January 2012?
|
||||
* const result = differenceInISOWeekYears(
|
||||
* new Date(2012, 0, 1),
|
||||
* new Date(2010, 0, 1)
|
||||
* )
|
||||
* //=> 1
|
||||
*/
|
||||
export default function differenceInISOWeekYears(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
var sign = compareAsc(dateLeft, dateRight);
|
||||
var difference = Math.abs(differenceInCalendarISOWeekYears(dateLeft, dateRight));
|
||||
dateLeft = subISOWeekYears(dateLeft, sign * difference);
|
||||
|
||||
// Math.abs(diff in full ISO years - diff in calendar ISO years) === 1
|
||||
// if last calendar ISO year is not full
|
||||
// If so, result must be decreased by 1 in absolute value
|
||||
var isLastISOWeekYearNotFull = Number(compareAsc(dateLeft, dateRight) === -sign);
|
||||
var result = sign * (difference - isLastISOWeekYearNotFull);
|
||||
// Prevent negative zero
|
||||
return result === 0 ? 0 : result;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInMilliseconds } from 'date-fns'
|
||||
export default differenceInMilliseconds
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name differenceInMilliseconds
|
||||
* @category Millisecond Helpers
|
||||
* @summary Get the number of milliseconds between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of milliseconds between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of milliseconds
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many milliseconds are between
|
||||
* // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?
|
||||
* const result = differenceInMilliseconds(
|
||||
* new Date(2014, 6, 2, 12, 30, 21, 700),
|
||||
* new Date(2014, 6, 2, 12, 30, 20, 600)
|
||||
* )
|
||||
* //=> 1100
|
||||
*/
|
||||
export default function differenceInMilliseconds(dateLeft, dateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
return toDate(dateLeft).getTime() - toDate(dateRight).getTime();
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInMinutes } from 'date-fns'
|
||||
export default differenceInMinutes
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
import { millisecondsInMinute } from "../constants/index.js";
|
||||
import differenceInMilliseconds from "../differenceInMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import { getRoundingMethod } from "../_lib/roundingMethods/index.js";
|
||||
/**
|
||||
* @name differenceInMinutes
|
||||
* @category Minute Helpers
|
||||
* @summary Get the number of minutes between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the signed number of full (rounded towards 0) minutes between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)
|
||||
* @returns {Number} the number of minutes
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?
|
||||
* const result = differenceInMinutes(
|
||||
* new Date(2014, 6, 2, 12, 20, 0),
|
||||
* new Date(2014, 6, 2, 12, 7, 59)
|
||||
* )
|
||||
* //=> 12
|
||||
*
|
||||
* @example
|
||||
* // How many minutes are between 10:01:59 and 10:00:00
|
||||
* const result = differenceInMinutes(
|
||||
* new Date(2000, 0, 1, 10, 0, 0),
|
||||
* new Date(2000, 0, 1, 10, 1, 59)
|
||||
* )
|
||||
* //=> -1
|
||||
*/
|
||||
export default function differenceInMinutes(dateLeft, dateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;
|
||||
return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number,
|
||||
options?: {
|
||||
roundingMethod?: string,
|
||||
}
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInMonths } from 'date-fns'
|
||||
export default differenceInMonths
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import differenceInCalendarMonths from "../differenceInCalendarMonths/index.js";
|
||||
import compareAsc from "../compareAsc/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import isLastDayOfMonth from "../isLastDayOfMonth/index.js";
|
||||
/**
|
||||
* @name differenceInMonths
|
||||
* @category Month Helpers
|
||||
* @summary Get the number of full months between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of full months between the given dates using trunc as a default rounding method.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of full months
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many full months are between 31 January 2014 and 1 September 2014?
|
||||
* const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))
|
||||
* //=> 7
|
||||
*/
|
||||
export default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
var sign = compareAsc(dateLeft, dateRight);
|
||||
var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));
|
||||
var result;
|
||||
|
||||
// Check for the difference of less than month
|
||||
if (difference < 1) {
|
||||
result = 0;
|
||||
} else {
|
||||
if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {
|
||||
// This will check if the date is end of Feb and assign a higher end of month date
|
||||
// to compare it with Jan
|
||||
dateLeft.setDate(30);
|
||||
}
|
||||
dateLeft.setMonth(dateLeft.getMonth() - sign * difference);
|
||||
|
||||
// Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full
|
||||
// If so, result must be decreased by 1 in absolute value
|
||||
var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign;
|
||||
|
||||
// Check for cases of one full calendar month
|
||||
if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {
|
||||
isLastMonthNotFull = false;
|
||||
}
|
||||
result = sign * (difference - Number(isLastMonthNotFull));
|
||||
}
|
||||
|
||||
// Prevent negative zero
|
||||
return result === 0 ? 0 : result;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInQuarters } from 'date-fns'
|
||||
export default differenceInQuarters
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
import differenceInMonths from "../differenceInMonths/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import { getRoundingMethod } from "../_lib/roundingMethods/index.js";
|
||||
/**
|
||||
* @name differenceInQuarters
|
||||
* @category Quarter Helpers
|
||||
* @summary Get the number of quarters between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of quarters between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)
|
||||
* @returns {Number} the number of full quarters
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many full quarters are between 31 December 2013 and 2 July 2014?
|
||||
* const result = differenceInQuarters(new Date(2014, 6, 2), new Date(2013, 11, 31))
|
||||
* //=> 2
|
||||
*/
|
||||
export default function differenceInQuarters(dateLeft, dateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var diff = differenceInMonths(dateLeft, dateRight) / 3;
|
||||
return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number,
|
||||
options?: {
|
||||
roundingMethod?: string,
|
||||
}
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInSeconds } from 'date-fns'
|
||||
export default differenceInSeconds
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
import differenceInMilliseconds from "../differenceInMilliseconds/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import { getRoundingMethod } from "../_lib/roundingMethods/index.js";
|
||||
/**
|
||||
* @name differenceInSeconds
|
||||
* @category Second Helpers
|
||||
* @summary Get the number of seconds between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of seconds between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)
|
||||
* @returns {Number} the number of seconds
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many seconds are between
|
||||
* // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?
|
||||
* const result = differenceInSeconds(
|
||||
* new Date(2014, 6, 2, 12, 30, 20, 0),
|
||||
* new Date(2014, 6, 2, 12, 30, 7, 999)
|
||||
* )
|
||||
* //=> 12
|
||||
*/
|
||||
export default function differenceInSeconds(dateLeft, dateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;
|
||||
return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number,
|
||||
options?: {
|
||||
roundingMethod?: string,
|
||||
}
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInWeeks } from 'date-fns'
|
||||
export default differenceInWeeks
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
import differenceInDays from "../differenceInDays/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
import { getRoundingMethod } from "../_lib/roundingMethods/index.js";
|
||||
/**
|
||||
* @name differenceInWeeks
|
||||
* @category Week Helpers
|
||||
* @summary Get the number of full weeks between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of full weeks between two dates. Fractional weeks are
|
||||
* truncated towards zero by default.
|
||||
*
|
||||
* One "full week" is the distance between a local time in one day to the same
|
||||
* local time 7 days earlier or later. A full week can sometimes be less than
|
||||
* or more than 7*24 hours if a daylight savings change happens between two dates.
|
||||
*
|
||||
* To ignore DST and only measure exact 7*24-hour periods, use this instead:
|
||||
* `Math.floor(differenceInHours(dateLeft, dateRight)/(7*24))|0`.
|
||||
*
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)
|
||||
* @returns {Number} the number of full weeks
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many full weeks are between 5 July 2014 and 20 July 2014?
|
||||
* const result = differenceInWeeks(new Date(2014, 6, 20), new Date(2014, 6, 5))
|
||||
* //=> 2
|
||||
*
|
||||
* // How many full weeks are between
|
||||
* // 1 March 2020 0:00 and 6 June 2020 0:00 ?
|
||||
* // Note: because local time is used, the
|
||||
* // result will always be 8 weeks (54 days),
|
||||
* // even if DST starts and the period has
|
||||
* // only 54*24-1 hours.
|
||||
* const result = differenceInWeeks(
|
||||
* new Date(2020, 5, 1),
|
||||
* new Date(2020, 2, 6)
|
||||
* )
|
||||
* //=> 8
|
||||
*/
|
||||
export default function differenceInWeeks(dateLeft, dateRight, options) {
|
||||
requiredArgs(2, arguments);
|
||||
var diff = differenceInDays(dateLeft, dateRight) / 7;
|
||||
return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number,
|
||||
options?: {
|
||||
roundingMethod?: string,
|
||||
}
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { differenceInYears } from 'date-fns'
|
||||
export default differenceInYears
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import differenceInCalendarYears from "../differenceInCalendarYears/index.js";
|
||||
import compareAsc from "../compareAsc/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name differenceInYears
|
||||
* @category Year Helpers
|
||||
* @summary Get the number of full years between the given dates.
|
||||
*
|
||||
* @description
|
||||
* Get the number of full years between the given dates.
|
||||
*
|
||||
* @param {Date|Number} dateLeft - the later date
|
||||
* @param {Date|Number} dateRight - the earlier date
|
||||
* @returns {Number} the number of full years
|
||||
* @throws {TypeError} 2 arguments required
|
||||
*
|
||||
* @example
|
||||
* // How many full years are between 31 December 2013 and 11 February 2015?
|
||||
* const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))
|
||||
* //=> 1
|
||||
*/
|
||||
export default function differenceInYears(dirtyDateLeft, dirtyDateRight) {
|
||||
requiredArgs(2, arguments);
|
||||
var dateLeft = toDate(dirtyDateLeft);
|
||||
var dateRight = toDate(dirtyDateRight);
|
||||
var sign = compareAsc(dateLeft, dateRight);
|
||||
var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight));
|
||||
|
||||
// Set both dates to a valid leap year for accurate comparison when dealing
|
||||
// with leap days
|
||||
dateLeft.setFullYear(1584);
|
||||
dateRight.setFullYear(1584);
|
||||
|
||||
// Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full
|
||||
// If so, result must be decreased by 1 in absolute value
|
||||
var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;
|
||||
var result = sign * (difference - Number(isLastYearNotFull));
|
||||
// Prevent negative zero
|
||||
return result === 0 ? 0 : result;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
dateLeft: Date | number,
|
||||
dateRight: Date | number
|
||||
) => number
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { eachDayOfInterval } from 'date-fns'
|
||||
export default eachDayOfInterval
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name eachDayOfInterval
|
||||
* @category Interval Helpers
|
||||
* @summary Return the array of dates within the specified time interval.
|
||||
*
|
||||
* @description
|
||||
* Return the array of dates within the specified time interval.
|
||||
*
|
||||
* @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.
|
||||
* @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end
|
||||
* @throws {TypeError} 1 argument required
|
||||
* @throws {RangeError} `options.step` must be a number greater than 1
|
||||
* @throws {RangeError} The start of an interval cannot be after its end
|
||||
* @throws {RangeError} Date in interval cannot be `Invalid Date`
|
||||
*
|
||||
* @example
|
||||
* // Each day between 6 October 2014 and 10 October 2014:
|
||||
* const result = eachDayOfInterval({
|
||||
* start: new Date(2014, 9, 6),
|
||||
* end: new Date(2014, 9, 10)
|
||||
* })
|
||||
* //=> [
|
||||
* // Mon Oct 06 2014 00:00:00,
|
||||
* // Tue Oct 07 2014 00:00:00,
|
||||
* // Wed Oct 08 2014 00:00:00,
|
||||
* // Thu Oct 09 2014 00:00:00,
|
||||
* // Fri Oct 10 2014 00:00:00
|
||||
* // ]
|
||||
*/
|
||||
export default function eachDayOfInterval(dirtyInterval, options) {
|
||||
var _options$step;
|
||||
requiredArgs(1, arguments);
|
||||
var interval = dirtyInterval || {};
|
||||
var startDate = toDate(interval.start);
|
||||
var endDate = toDate(interval.end);
|
||||
var endTime = endDate.getTime();
|
||||
|
||||
// Throw an exception if start date is after end date or if any date is `Invalid Date`
|
||||
if (!(startDate.getTime() <= endTime)) {
|
||||
throw new RangeError('Invalid interval');
|
||||
}
|
||||
var dates = [];
|
||||
var currentDate = startDate;
|
||||
currentDate.setHours(0, 0, 0, 0);
|
||||
var step = Number((_options$step = options === null || options === void 0 ? void 0 : options.step) !== null && _options$step !== void 0 ? _options$step : 1);
|
||||
if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');
|
||||
while (currentDate.getTime() <= endTime) {
|
||||
dates.push(toDate(currentDate));
|
||||
currentDate.setDate(currentDate.getDate() + step);
|
||||
currentDate.setHours(0, 0, 0, 0);
|
||||
}
|
||||
return dates;
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
interval: Interval,
|
||||
options?: {
|
||||
step?: number,
|
||||
}
|
||||
) => Date[]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { eachHourOfInterval } from 'date-fns'
|
||||
export default eachHourOfInterval
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
import addHours from "../addHours/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name eachHourOfInterval
|
||||
* @category Interval Helpers
|
||||
* @summary Return the array of hours within the specified time interval.
|
||||
*
|
||||
* @description
|
||||
* Return the array of hours within the specified time interval.
|
||||
*
|
||||
* @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.
|
||||
* @returns {Date[]} the array with starts of hours from the hour of the interval start to the hour of the interval end
|
||||
* @throws {TypeError} 1 argument required
|
||||
* @throws {RangeError} `options.step` must be a number greater than 1
|
||||
* @throws {RangeError} The start of an interval cannot be after its end
|
||||
* @throws {RangeError} Date in interval cannot be `Invalid Date`
|
||||
*
|
||||
* @example
|
||||
* // Each hour between 6 October 2014, 12:00 and 6 October 2014, 15:00
|
||||
* const result = eachHourOfInterval({
|
||||
* start: new Date(2014, 9, 6, 12),
|
||||
* end: new Date(2014, 9, 6, 15)
|
||||
* })
|
||||
* //=> [
|
||||
* // Mon Oct 06 2014 12:00:00,
|
||||
* // Mon Oct 06 2014 13:00:00,
|
||||
* // Mon Oct 06 2014 14:00:00,
|
||||
* // Mon Oct 06 2014 15:00:00
|
||||
* // ]
|
||||
*/
|
||||
export default function eachHourOfInterval(dirtyInterval, options) {
|
||||
var _options$step;
|
||||
requiredArgs(1, arguments);
|
||||
var interval = dirtyInterval || {};
|
||||
var startDate = toDate(interval.start);
|
||||
var endDate = toDate(interval.end);
|
||||
var startTime = startDate.getTime();
|
||||
var endTime = endDate.getTime();
|
||||
|
||||
// Throw an exception if start date is after end date or if any date is `Invalid Date`
|
||||
if (!(startTime <= endTime)) {
|
||||
throw new RangeError('Invalid interval');
|
||||
}
|
||||
var dates = [];
|
||||
var currentDate = startDate;
|
||||
currentDate.setMinutes(0, 0, 0);
|
||||
var step = Number((_options$step = options === null || options === void 0 ? void 0 : options.step) !== null && _options$step !== void 0 ? _options$step : 1);
|
||||
if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');
|
||||
while (currentDate.getTime() <= endTime) {
|
||||
dates.push(toDate(currentDate));
|
||||
currentDate = addHours(currentDate, step);
|
||||
}
|
||||
return dates;
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
interval: Interval,
|
||||
options?: {
|
||||
step?: number,
|
||||
}
|
||||
) => Date[]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { eachMinuteOfInterval } from 'date-fns'
|
||||
export default eachMinuteOfInterval
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
import addMinutes from "../addMinutes/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import startOfMinute from "../startOfMinute/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name eachMinuteOfInterval
|
||||
* @category Interval Helpers
|
||||
* @summary Return the array of minutes within the specified time interval.
|
||||
*
|
||||
* @description
|
||||
* Returns the array of minutes within the specified time interval.
|
||||
*
|
||||
* @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}
|
||||
* @param {Object} [options] - an object with options.
|
||||
* @param {Number} [options.step=1] - the step to increment by. The step must be equal to or greater than 1
|
||||
* @throws {TypeError} 1 argument required
|
||||
* @returns {Date[]} the array with starts of minutes from the minute of the interval start to the minute of the interval end
|
||||
* @throws {RangeError} `options.step` must be a number equal to or greater than 1
|
||||
* @throws {RangeError} The start of an interval cannot be after its end
|
||||
* @throws {RangeError} Date in interval cannot be `Invalid Date`
|
||||
*
|
||||
* @example
|
||||
* // Each minute between 14 October 2020, 13:00 and 14 October 2020, 13:03
|
||||
* const result = eachMinuteOfInterval({
|
||||
* start: new Date(2014, 9, 14, 13),
|
||||
* end: new Date(2014, 9, 14, 13, 3)
|
||||
* })
|
||||
* //=> [
|
||||
* // Wed Oct 14 2014 13:00:00,
|
||||
* // Wed Oct 14 2014 13:01:00,
|
||||
* // Wed Oct 14 2014 13:02:00,
|
||||
* // Wed Oct 14 2014 13:03:00
|
||||
* // ]
|
||||
*/
|
||||
export default function eachMinuteOfInterval(interval, options) {
|
||||
var _options$step;
|
||||
requiredArgs(1, arguments);
|
||||
var startDate = startOfMinute(toDate(interval.start));
|
||||
var endDate = toDate(interval.end);
|
||||
var startTime = startDate.getTime();
|
||||
var endTime = endDate.getTime();
|
||||
if (startTime >= endTime) {
|
||||
throw new RangeError('Invalid interval');
|
||||
}
|
||||
var dates = [];
|
||||
var currentDate = startDate;
|
||||
var step = Number((_options$step = options === null || options === void 0 ? void 0 : options.step) !== null && _options$step !== void 0 ? _options$step : 1);
|
||||
if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number equal to or greater than 1');
|
||||
while (currentDate.getTime() <= endTime) {
|
||||
dates.push(toDate(currentDate));
|
||||
currentDate = addMinutes(currentDate, step);
|
||||
}
|
||||
return dates;
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (
|
||||
interval: Interval,
|
||||
options?: {
|
||||
step?: number,
|
||||
}
|
||||
) => Date[]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { eachMonthOfInterval } from 'date-fns'
|
||||
export default eachMonthOfInterval
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name eachMonthOfInterval
|
||||
* @category Interval Helpers
|
||||
* @summary Return the array of months within the specified time interval.
|
||||
*
|
||||
* @description
|
||||
* Return the array of months within the specified time interval.
|
||||
*
|
||||
* @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}
|
||||
* @returns {Date[]} the array with starts of months from the month of the interval start to the month of the interval end
|
||||
* @throws {TypeError} 1 argument required
|
||||
* @throws {RangeError} The start of an interval cannot be after its end
|
||||
* @throws {RangeError} Date in interval cannot be `Invalid Date`
|
||||
*
|
||||
* @example
|
||||
* // Each month between 6 February 2014 and 10 August 2014:
|
||||
* const result = eachMonthOfInterval({
|
||||
* start: new Date(2014, 1, 6),
|
||||
* end: new Date(2014, 7, 10)
|
||||
* })
|
||||
* //=> [
|
||||
* // Sat Feb 01 2014 00:00:00,
|
||||
* // Sat Mar 01 2014 00:00:00,
|
||||
* // Tue Apr 01 2014 00:00:00,
|
||||
* // Thu May 01 2014 00:00:00,
|
||||
* // Sun Jun 01 2014 00:00:00,
|
||||
* // Tue Jul 01 2014 00:00:00,
|
||||
* // Fri Aug 01 2014 00:00:00
|
||||
* // ]
|
||||
*/
|
||||
export default function eachMonthOfInterval(dirtyInterval) {
|
||||
requiredArgs(1, arguments);
|
||||
var interval = dirtyInterval || {};
|
||||
var startDate = toDate(interval.start);
|
||||
var endDate = toDate(interval.end);
|
||||
var endTime = endDate.getTime();
|
||||
var dates = [];
|
||||
|
||||
// Throw an exception if start date is after end date or if any date is `Invalid Date`
|
||||
if (!(startDate.getTime() <= endTime)) {
|
||||
throw new RangeError('Invalid interval');
|
||||
}
|
||||
var currentDate = startDate;
|
||||
currentDate.setHours(0, 0, 0, 0);
|
||||
currentDate.setDate(1);
|
||||
while (currentDate.getTime() <= endTime) {
|
||||
dates.push(toDate(currentDate));
|
||||
currentDate.setMonth(currentDate.getMonth() + 1);
|
||||
}
|
||||
return dates;
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (interval: Interval) => Date[]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { eachQuarterOfInterval } from 'date-fns'
|
||||
export default eachQuarterOfInterval
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
import addQuarters from "../addQuarters/index.js";
|
||||
import startOfQuarter from "../startOfQuarter/index.js";
|
||||
import toDate from "../toDate/index.js";
|
||||
import requiredArgs from "../_lib/requiredArgs/index.js";
|
||||
/**
|
||||
* @name eachQuarterOfInterval
|
||||
* @category Interval Helpers
|
||||
* @summary Return the array of quarters within the specified time interval.
|
||||
*
|
||||
* @description
|
||||
* Return the array of quarters within the specified time interval.
|
||||
*
|
||||
* @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}
|
||||
* @returns {Date[]} the array with starts of quarters from the quarter of the interval start to the quarter of the interval end
|
||||
* @throws {TypeError} 1 argument required
|
||||
* @throws {RangeError} The start of an interval cannot be after its end
|
||||
* @throws {RangeError} Date in interval cannot be `Invalid Date`
|
||||
*
|
||||
* @example
|
||||
* // Each quarter within interval 6 February 2014 - 10 August 2014:
|
||||
* const result = eachQuarterOfInterval({
|
||||
* start: new Date(2014, 1, 6),
|
||||
* end: new Date(2014, 7, 10)
|
||||
* })
|
||||
* //=> [
|
||||
* // Wed Jan 01 2014 00:00:00,
|
||||
* // Tue Apr 01 2014 00:00:00,
|
||||
* // Tue Jul 01 2014 00:00:00,
|
||||
* // ]
|
||||
*/
|
||||
export default function eachQuarterOfInterval(dirtyInterval) {
|
||||
requiredArgs(1, arguments);
|
||||
var interval = dirtyInterval || {};
|
||||
var startDate = toDate(interval.start);
|
||||
var endDate = toDate(interval.end);
|
||||
var endTime = endDate.getTime();
|
||||
|
||||
// Throw an exception if start date is after end date or if any date is `Invalid Date`
|
||||
if (!(startDate.getTime() <= endTime)) {
|
||||
throw new RangeError('Invalid interval');
|
||||
}
|
||||
var startDateQuarter = startOfQuarter(startDate);
|
||||
var endDateQuarter = startOfQuarter(endDate);
|
||||
endTime = endDateQuarter.getTime();
|
||||
var quarters = [];
|
||||
var currentQuarter = startDateQuarter;
|
||||
while (currentQuarter.getTime() <= endTime) {
|
||||
quarters.push(toDate(currentQuarter));
|
||||
currentQuarter = addQuarters(currentQuarter, 1);
|
||||
}
|
||||
return quarters;
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
// @flow
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
export type Interval = {
|
||||
start: Date | number,
|
||||
end: Date | number,
|
||||
}
|
||||
|
||||
export type Locale = {
|
||||
code?: string,
|
||||
formatDistance?: (...args: Array<any>) => any,
|
||||
formatRelative?: (...args: Array<any>) => any,
|
||||
localize?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
formatLong?: {
|
||||
date: (...args: Array<any>) => any,
|
||||
time: (...args: Array<any>) => any,
|
||||
dateTime: (...args: Array<any>) => any,
|
||||
},
|
||||
match?: {
|
||||
ordinalNumber: (...args: Array<any>) => any,
|
||||
era: (...args: Array<any>) => any,
|
||||
quarter: (...args: Array<any>) => any,
|
||||
month: (...args: Array<any>) => any,
|
||||
day: (...args: Array<any>) => any,
|
||||
dayPeriod: (...args: Array<any>) => any,
|
||||
},
|
||||
options?: {
|
||||
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6,
|
||||
firstWeekContainsDate?: 1 | 2 | 3 | 4 | 5 | 6 | 7,
|
||||
},
|
||||
}
|
||||
|
||||
export type Duration = {
|
||||
years?: number,
|
||||
months?: number,
|
||||
weeks?: number,
|
||||
days?: number,
|
||||
hours?: number,
|
||||
minutes?: number,
|
||||
seconds?: number,
|
||||
}
|
||||
|
||||
export type Day = 0 | 1 | 2 | 3 | 4 | 5 | 6
|
||||
|
||||
declare module.exports: (interval: Interval) => Date[]
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"sideEffects": false,
|
||||
"typings": "../../typings.d.ts"
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// This file is generated automatically by `scripts/build/typings.js`. Please, don't change it.
|
||||
|
||||
import { eachWeekOfInterval } from 'date-fns'
|
||||
export default eachWeekOfInterval
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user