@gobrand/tiempo 3.1.3 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addBusinessDays.d.ts +14 -4
- package/dist/addBusinessDays.d.ts.map +1 -1
- package/dist/addBusinessDays.js +2 -2
- package/dist/areIntervalsOverlapping.d.ts +60 -0
- package/dist/areIntervalsOverlapping.d.ts.map +1 -0
- package/dist/areIntervalsOverlapping.js +9 -0
- package/dist/areIntervalsOverlapping.js.map +1 -0
- package/dist/chunk-2JXI3CAL.js +22 -0
- package/dist/chunk-2JXI3CAL.js.map +1 -0
- package/dist/{chunk-BYPHFTFD.js → chunk-2LT2XOAL.js} +4 -82
- package/dist/chunk-2LT2XOAL.js.map +1 -0
- package/dist/chunk-3OOGJRXH.js +247 -0
- package/dist/chunk-3OOGJRXH.js.map +1 -0
- package/dist/chunk-42IFQS4W.js +16 -0
- package/dist/chunk-42IFQS4W.js.map +1 -0
- package/dist/{chunk-MXYAZTDE.js → chunk-4FQCY75E.js} +4 -4
- package/dist/chunk-4YCEFGZA.js +61 -0
- package/dist/chunk-4YCEFGZA.js.map +1 -0
- package/dist/chunk-6UBFKQIJ.js +20 -0
- package/dist/chunk-6UBFKQIJ.js.map +1 -0
- package/dist/chunk-7PH5BPMS.js +14 -0
- package/dist/chunk-7PH5BPMS.js.map +1 -0
- package/dist/chunk-C7QA4J6V.js +14 -0
- package/dist/chunk-C7QA4J6V.js.map +1 -0
- package/dist/chunk-DVZDJ5LM.js +33 -0
- package/dist/chunk-DVZDJ5LM.js.map +1 -0
- package/dist/{chunk-AOODDNHA.js → chunk-DYIISNVW.js} +14 -12
- package/dist/chunk-DYIISNVW.js.map +1 -0
- package/dist/{chunk-6QZUAJVF.js → chunk-GOJ45AG7.js} +2 -2
- package/dist/chunk-H43LMOCK.js +26 -0
- package/dist/chunk-H43LMOCK.js.map +1 -0
- package/dist/chunk-HH2HTC44.js +87 -0
- package/dist/chunk-HH2HTC44.js.map +1 -0
- package/dist/chunk-IDB3R3G5.js +21 -0
- package/dist/chunk-IDB3R3G5.js.map +1 -0
- package/dist/chunk-IIEHQPKE.js +36 -0
- package/dist/chunk-IIEHQPKE.js.map +1 -0
- package/dist/{chunk-OVBZ2NBB.js → chunk-K7SY2MAX.js} +10 -4
- package/dist/chunk-K7SY2MAX.js.map +1 -0
- package/dist/chunk-KZYWHHAQ.js +19 -0
- package/dist/chunk-KZYWHHAQ.js.map +1 -0
- package/dist/chunk-M2XB72L5.js +17 -0
- package/dist/chunk-M2XB72L5.js.map +1 -0
- package/dist/chunk-OMUK2MOH.js +19 -0
- package/dist/chunk-OMUK2MOH.js.map +1 -0
- package/dist/chunk-PLPGYCQQ.js +28 -0
- package/dist/chunk-PLPGYCQQ.js.map +1 -0
- package/dist/chunk-R6D3Y5NV.js +17 -0
- package/dist/chunk-R6D3Y5NV.js.map +1 -0
- package/dist/chunk-U6VFT2A5.js +14 -0
- package/dist/chunk-U6VFT2A5.js.map +1 -0
- package/dist/chunk-XMEPH226.js +21 -0
- package/dist/chunk-XMEPH226.js.map +1 -0
- package/dist/{chunk-NGS5UKDW.js → chunk-ZNRTNR2Q.js} +4 -4
- package/dist/differenceInBusinessDays.d.ts +7 -5
- package/dist/differenceInBusinessDays.d.ts.map +1 -1
- package/dist/differenceInBusinessDays.js +2 -2
- package/dist/differenceInCalendarDays.d.ts +35 -0
- package/dist/differenceInCalendarDays.d.ts.map +1 -0
- package/dist/differenceInCalendarDays.js +10 -0
- package/dist/differenceInCalendarDays.js.map +1 -0
- package/dist/differenceInCalendarMonths.d.ts +27 -0
- package/dist/differenceInCalendarMonths.d.ts.map +1 -0
- package/dist/differenceInCalendarMonths.js +10 -0
- package/dist/differenceInCalendarMonths.js.map +1 -0
- package/dist/differenceInCalendarQuarters.d.ts +26 -0
- package/dist/differenceInCalendarQuarters.d.ts.map +1 -0
- package/dist/differenceInCalendarQuarters.js +11 -0
- package/dist/differenceInCalendarQuarters.js.map +1 -0
- package/dist/differenceInCalendarWeeks.d.ts +29 -0
- package/dist/differenceInCalendarWeeks.d.ts.map +1 -0
- package/dist/differenceInCalendarWeeks.js +11 -0
- package/dist/differenceInCalendarWeeks.js.map +1 -0
- package/dist/differenceInCalendarYears.d.ts +27 -0
- package/dist/differenceInCalendarYears.d.ts.map +1 -0
- package/dist/differenceInCalendarYears.js +10 -0
- package/dist/differenceInCalendarYears.js.map +1 -0
- package/dist/eachWeekOfInterval.d.ts +7 -5
- package/dist/eachWeekOfInterval.d.ts.map +1 -1
- package/dist/eachWeekOfInterval.js +2 -1
- package/dist/endOfQuarter.js +2 -2
- package/dist/endOfWeek.d.ts +17 -7
- package/dist/endOfWeek.d.ts.map +1 -1
- package/dist/endOfWeek.js +2 -1
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +2 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +117 -78
- package/dist/isSameWeek.d.ts +16 -7
- package/dist/isSameWeek.d.ts.map +1 -1
- package/dist/isSameWeek.js +2 -1
- package/dist/isWeekend.js +2 -2
- package/dist/isWithinInterval.d.ts +41 -6
- package/dist/isWithinInterval.d.ts.map +1 -1
- package/dist/isWithinInterval.js +3 -2
- package/dist/nextDay.d.ts +33 -0
- package/dist/nextDay.d.ts.map +1 -0
- package/dist/nextDay.js +10 -0
- package/dist/nextDay.js.map +1 -0
- package/dist/parse.d.ts +57 -0
- package/dist/parse.d.ts.map +1 -0
- package/dist/parse.js +9 -0
- package/dist/parse.js.map +1 -0
- package/dist/previousDay.d.ts +26 -0
- package/dist/previousDay.d.ts.map +1 -0
- package/dist/previousDay.js +10 -0
- package/dist/previousDay.js.map +1 -0
- package/dist/shared/businessDays.d.ts +15 -0
- package/dist/shared/businessDays.d.ts.map +1 -1
- package/dist/shared/businessDays.js +7 -3
- package/dist/shared/calendarDates.d.ts +9 -0
- package/dist/shared/calendarDates.d.ts.map +1 -0
- package/dist/shared/calendarDates.js +9 -0
- package/dist/shared/calendarDates.js.map +1 -0
- package/dist/shared/formatTokens.d.ts +8 -0
- package/dist/shared/formatTokens.d.ts.map +1 -0
- package/dist/shared/formatTokens.js +7 -0
- package/dist/shared/formatTokens.js.map +1 -0
- package/dist/shared/week.d.ts +26 -0
- package/dist/shared/week.d.ts.map +1 -0
- package/dist/shared/week.js +9 -0
- package/dist/shared/week.js.map +1 -0
- package/dist/startOfQuarter.js +2 -2
- package/dist/startOfWeek.d.ts +17 -7
- package/dist/startOfWeek.d.ts.map +1 -1
- package/dist/startOfWeek.js +2 -1
- package/dist/subBusinessDays.d.ts +6 -4
- package/dist/subBusinessDays.d.ts.map +1 -1
- package/dist/subBusinessDays.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-2TISXHHK.js +0 -29
- package/dist/chunk-2TISXHHK.js.map +0 -1
- package/dist/chunk-4PS6BEAC.js +0 -16
- package/dist/chunk-4PS6BEAC.js.map +0 -1
- package/dist/chunk-57MHNRCU.js +0 -22
- package/dist/chunk-57MHNRCU.js.map +0 -1
- package/dist/chunk-AOODDNHA.js.map +0 -1
- package/dist/chunk-BYPHFTFD.js.map +0 -1
- package/dist/chunk-D3N7BT44.js +0 -22
- package/dist/chunk-D3N7BT44.js.map +0 -1
- package/dist/chunk-GCVX5QIX.js +0 -15
- package/dist/chunk-GCVX5QIX.js.map +0 -1
- package/dist/chunk-K7CLBBBM.js +0 -36
- package/dist/chunk-K7CLBBBM.js.map +0 -1
- package/dist/chunk-MLHFNZEA.js +0 -26
- package/dist/chunk-MLHFNZEA.js.map +0 -1
- package/dist/chunk-OVBZ2NBB.js.map +0 -1
- /package/dist/{chunk-MXYAZTDE.js.map → chunk-4FQCY75E.js.map} +0 -0
- /package/dist/{chunk-6QZUAJVF.js.map → chunk-GOJ45AG7.js.map} +0 -0
- /package/dist/{chunk-NGS5UKDW.js.map → chunk-ZNRTNR2Q.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/isSameWeek.ts"],"sourcesContent":["import type { Temporal } from './shared/temporal';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\n\n/**\n * Returns true if both datetimes fall in the same ISO 8601 week.\n * Uses ISO week numbering where weeks start on Monday and the first week\n * of the year is the week containing January 4th.\n *\n * Compares the yearOfWeek and weekOfYear fields directly.\n *\n * Instant inputs are converted to UTC. For ZonedDateTime inputs, their\n * timezone is preserved. Convert to a common timezone before calling if\n * you need to compare from a specific perspective.\n *\n * @param date1 - First datetime (Instant or ZonedDateTime)\n * @param date2 - Second datetime (Instant or ZonedDateTime)\n * @returns true if both dates are in the same ISO week, false otherwise\n *\n * @example\n * ```ts\n * // Same timezone, same week (both in week 4 of 2025)\n * const monday = Temporal.ZonedDateTime.from('2025-01-20T08:00:00+00:00[UTC]'); // Monday, Week 4\n * const sunday = Temporal.ZonedDateTime.from('2025-01-26T23:59:59+00:00[UTC]'); // Sunday, Week 4\n *\n * isSameWeek(monday, sunday); // true\n * ```\n *\n * @example\n * ```ts\n * // Same timezone, different weeks\n * const week3 = Temporal.ZonedDateTime.from('2025-01-19T23:59:59+00:00[UTC]'); // Sunday, Week 3\n * const week4 = Temporal.ZonedDateTime.from('2025-01-20T00:00:00+00:00[UTC]'); // Monday, Week 4\n *\n * isSameWeek(week3, week4); // false\n * ```\n *\n * @example\n * ```ts\n * // Different timezones - compares their local calendar weeks\n * const ny = Temporal.ZonedDateTime.from('2025-01-26T23:00:00-05:00[America/New_York]');\n * const tokyo = Temporal.ZonedDateTime.from('2025-01-27T13:00:00+09:00[Asia/Tokyo]');\n *\n * // Same instant, different local weeks from each person's perspective\n * isSameWeek(ny, tokyo); // false (Week 4 Sun in NY, Week 5 Mon in Tokyo)\n *\n * // Convert to UTC to compare in UTC timezone\n * isSameWeek(ny.withTimeZone('UTC'), tokyo.withTimeZone('UTC')); // true (both Week 5 in UTC)\n *\n * // Convert to NY timezone to compare from NY perspective\n * isSameWeek(ny, tokyo.withTimeZone('America/New_York')); // true (both Week 4 in NY)\n * ```\n *\n * @example\n * ```ts\n * // Instant inputs are converted to UTC\n * const instant1 = Temporal.Instant.from('2025-01-20T00:00:00Z'); // Monday, Week 4\n * const instant2 = Temporal.Instant.from('2025-01-26T23:59:59Z'); // Sunday, Week 4\n *\n * isSameWeek(instant1, instant2); // true (both Week 4 2025 in UTC)\n * ```\n *\n * @example\n * ```ts\n * // ISO week years can differ from calendar years\n * // December 29, 2024 is in Week 52 of 2024\n * const dec29 = Temporal.ZonedDateTime.from('2024-12-29T12:00:00+00:00[UTC]');\n * // January 5, 2025 is in Week 1 of 2025\n * const jan5 = Temporal.ZonedDateTime.from('2025-01-05T12:00:00+00:00[UTC]');\n *\n * isSameWeek(dec29, jan5); // false (different ISO weeks)\n * ```\n */\nexport function isSameWeek(\n date1: Temporal.Instant | Temporal.ZonedDateTime,\n date2: Temporal.Instant | Temporal.ZonedDateTime\n): boolean {\n const zoned1 = normalizeTemporalInput(date1);\n const zoned2 = normalizeTemporalInput(date2);\n\n return (\n zoned1.yearOfWeek === zoned2.yearOfWeek &&\n zoned1.weekOfYear === zoned2.weekOfYear\n );\n}\n"],"mappings":";;;;;AAwEO,SAAS,WACd,OACA,OACS;AACT,QAAM,SAAS,uBAAuB,KAAK;AAC3C,QAAM,SAAS,uBAAuB,KAAK;AAE3C,SACE,OAAO,eAAe,OAAO,cAC7B,OAAO,eAAe,OAAO;AAEjC;","names":[]}
|
package/dist/chunk-K7CLBBBM.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
normalizeTemporalInput
|
|
3
|
-
} from "./chunk-Q6QLOUXJ.js";
|
|
4
|
-
import {
|
|
5
|
-
Temporal,
|
|
6
|
-
isPlainDate
|
|
7
|
-
} from "./chunk-BSVOJYJ7.js";
|
|
8
|
-
|
|
9
|
-
// src/shared/businessDays.ts
|
|
10
|
-
function isWeekendDay(dayOfWeek) {
|
|
11
|
-
return dayOfWeek >= 6;
|
|
12
|
-
}
|
|
13
|
-
function addWeekdays(start, days) {
|
|
14
|
-
if (!Number.isInteger(days)) {
|
|
15
|
-
throw new RangeError("Business day counts must be integers");
|
|
16
|
-
}
|
|
17
|
-
const step = days < 0 ? -1 : 1;
|
|
18
|
-
const fullWeeks = Math.max(0, Math.trunc((Math.abs(days) - 1) / 5));
|
|
19
|
-
let result = fullWeeks === 0 ? start : start.add({ days: step * fullWeeks * 7 });
|
|
20
|
-
for (let remaining = Math.abs(days) - fullWeeks * 5; remaining > 0; ) {
|
|
21
|
-
result = result.add({ days: step });
|
|
22
|
-
if (!isWeekendDay(result.dayOfWeek)) remaining--;
|
|
23
|
-
}
|
|
24
|
-
return result;
|
|
25
|
-
}
|
|
26
|
-
function isoDate(input) {
|
|
27
|
-
const date = isPlainDate(input) ? input : normalizeTemporalInput(input).toPlainDate();
|
|
28
|
-
return Temporal.PlainDate.from(date.toString()).withCalendar("iso8601");
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export {
|
|
32
|
-
isWeekendDay,
|
|
33
|
-
addWeekdays,
|
|
34
|
-
isoDate
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=chunk-K7CLBBBM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/shared/businessDays.ts"],"sourcesContent":["import { Temporal, isPlainDate } from './temporal';\nimport { normalizeTemporalInput } from './normalizeTemporalInput';\n\n/**\n * @internal\n * Saturday (6) and Sunday (7) in Temporal's Monday-based dayOfWeek.\n */\nexport function isWeekendDay(dayOfWeek: number): boolean {\n return dayOfWeek >= 6;\n}\n\n/**\n * @internal\n * Adds days counting only Monday–Friday. The result keeps the input's type,\n * time of day, and timezone.\n */\nexport function addWeekdays<T extends { dayOfWeek: number; add(duration: { days: number }): T }>(\n start: T,\n days: number\n): T {\n if (!Number.isInteger(days)) {\n throw new RangeError('Business day counts must be integers');\n }\n const step = days < 0 ? -1 : 1;\n // Any 7 consecutive days hold exactly 5 weekdays, so jump whole weeks. Keep\n // at least one business day to walk so a weekend landing is never returned.\n const fullWeeks = Math.max(0, Math.trunc((Math.abs(days) - 1) / 5));\n let result = fullWeeks === 0 ? start : start.add({ days: step * fullWeeks * 7 });\n for (let remaining = Math.abs(days) - fullWeeks * 5; remaining > 0;) {\n result = result.add({ days: step });\n if (!isWeekendDay(result.dayOfWeek)) remaining--;\n }\n return result;\n}\n\n/**\n * @internal\n * The calendar date of a value as an ISO PlainDate from this library's\n * Temporal implementation. Instant uses UTC; ZonedDateTime uses its timezone.\n */\nexport function isoDate(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate\n): Temporal.PlainDate {\n const date = isPlainDate(input) ? input : normalizeTemporalInput(input).toPlainDate();\n return Temporal.PlainDate.from(date.toString()).withCalendar('iso8601');\n}\n"],"mappings":";;;;;;;;;AAOO,SAAS,aAAa,WAA4B;AACvD,SAAO,aAAa;AACtB;AAOO,SAAS,YACd,OACA,MACG;AACH,MAAI,CAAC,OAAO,UAAU,IAAI,GAAG;AAC3B,UAAM,IAAI,WAAW,sCAAsC;AAAA,EAC7D;AACA,QAAM,OAAO,OAAO,IAAI,KAAK;AAG7B,QAAM,YAAY,KAAK,IAAI,GAAG,KAAK,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC;AAClE,MAAI,SAAS,cAAc,IAAI,QAAQ,MAAM,IAAI,EAAE,MAAM,OAAO,YAAY,EAAE,CAAC;AAC/E,WAAS,YAAY,KAAK,IAAI,IAAI,IAAI,YAAY,GAAG,YAAY,KAAI;AACnE,aAAS,OAAO,IAAI,EAAE,MAAM,KAAK,CAAC;AAClC,QAAI,CAAC,aAAa,OAAO,SAAS,EAAG;AAAA,EACvC;AACA,SAAO;AACT;AAOO,SAAS,QACd,OACoB;AACpB,QAAM,OAAO,YAAY,KAAK,IAAI,QAAQ,uBAAuB,KAAK,EAAE,YAAY;AACpF,SAAO,SAAS,UAAU,KAAK,KAAK,SAAS,CAAC,EAAE,aAAa,SAAS;AACxE;","names":[]}
|
package/dist/chunk-MLHFNZEA.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
plainDateToZonedDateTime
|
|
3
|
-
} from "./chunk-2AID4P2C.js";
|
|
4
|
-
import {
|
|
5
|
-
normalizeTemporalInput
|
|
6
|
-
} from "./chunk-Q6QLOUXJ.js";
|
|
7
|
-
import {
|
|
8
|
-
isPlainDate
|
|
9
|
-
} from "./chunk-BSVOJYJ7.js";
|
|
10
|
-
|
|
11
|
-
// src/startOfWeek.ts
|
|
12
|
-
function startOfWeek(input, timezone) {
|
|
13
|
-
if (isPlainDate(input) && timezone === void 0) {
|
|
14
|
-
return input.subtract({ days: input.dayOfWeek - 1 });
|
|
15
|
-
}
|
|
16
|
-
const zonedDateTime = isPlainDate(input) ? plainDateToZonedDateTime(input, timezone) : normalizeTemporalInput(input);
|
|
17
|
-
const dayOfWeek = zonedDateTime.dayOfWeek;
|
|
18
|
-
const daysToSubtract = dayOfWeek - 1;
|
|
19
|
-
const monday = zonedDateTime.subtract({ days: daysToSubtract });
|
|
20
|
-
return monday.startOfDay();
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export {
|
|
24
|
-
startOfWeek
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=chunk-MLHFNZEA.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/startOfWeek.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from './shared/temporal';\nimport type { Timezone } from './types';\nimport { normalizeTemporalInput } from './shared/normalizeTemporalInput';\nimport { plainDateToZonedDateTime } from './shared/plainDateToZonedDateTime';\n\n/**\n * Returns the first boundary of the week (Monday).\n * Uses ISO 8601 week definition: weeks start on Monday.\n * PlainDate inputs stay in calendar space unless a timezone is provided.\n *\n * @param input - A Temporal.Instant (UTC) or Temporal.ZonedDateTime\n * @returns ZonedDateTime at Monday 00:00:00.000000000\n *\n * @example\n * ```ts\n * // From Instant (always UTC)\n * const instant = Temporal.Instant.from('2025-01-20T12:00:00Z'); // Monday\n * const start = startOfWeek(instant);\n * // 2025-01-20T00:00:00+00:00[UTC] (same day, it's already Monday)\n * ```\n *\n * @example\n * ```ts\n * // From ZonedDateTime (uses its timezone)\n * const zoned = Temporal.ZonedDateTime.from('2025-01-22T15:30:00-05:00[America/New_York]'); // Wednesday\n * const start = startOfWeek(zoned);\n * // 2025-01-20T00:00:00-05:00[America/New_York] (previous Monday)\n * ```\n *\n * @example\n * ```ts\n * // From PlainDate (stays a date)\n * const date = Temporal.PlainDate.from('2025-01-22'); // Wednesday\n * const start = startOfWeek(date);\n * // 2025-01-20 (previous Monday)\n * ```\n *\n * @example\n * ```ts\n * // From PlainDate with a timezone (returns a ZonedDateTime)\n * const date = Temporal.PlainDate.from('2025-01-22'); // Wednesday\n * const start = startOfWeek(date, 'America/New_York');\n * // 2025-01-20T00:00:00-05:00[America/New_York] (previous Monday)\n * ```\n */\nexport function startOfWeek(\n input: Temporal.Instant | Temporal.ZonedDateTime\n): Temporal.ZonedDateTime;\nexport function startOfWeek(input: Temporal.PlainDate): Temporal.PlainDate;\nexport function startOfWeek(\n input: Temporal.PlainDate,\n timezone: Timezone\n): Temporal.ZonedDateTime;\nexport function startOfWeek(\n input: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n timezone?: Timezone\n): Temporal.ZonedDateTime | Temporal.PlainDate {\n if (isPlainDate(input) && timezone === undefined) {\n return input.subtract({ days: input.dayOfWeek - 1 });\n }\n\n const zonedDateTime =\n isPlainDate(input)\n ? plainDateToZonedDateTime(input, timezone!)\n : normalizeTemporalInput(input);\n\n // Get the day of week (1 = Monday, 7 = Sunday in ISO 8601)\n const dayOfWeek = zonedDateTime.dayOfWeek;\n\n // Calculate days to subtract to get to Monday\n const daysToSubtract = dayOfWeek - 1;\n\n // Go to Monday, then get start of that day\n const monday = zonedDateTime.subtract({ days: daysToSubtract });\n\n return monday.startOfDay();\n}\n"],"mappings":";;;;;;;;;;;AAqDO,SAAS,YACd,OACA,UAC6C;AAC7C,MAAI,YAAY,KAAK,KAAK,aAAa,QAAW;AAChD,WAAO,MAAM,SAAS,EAAE,MAAM,MAAM,YAAY,EAAE,CAAC;AAAA,EACrD;AAEA,QAAM,gBACJ,YAAY,KAAK,IACb,yBAAyB,OAAO,QAAS,IACzC,uBAAuB,KAAK;AAGlC,QAAM,YAAY,cAAc;AAGhC,QAAM,iBAAiB,YAAY;AAGnC,QAAM,SAAS,cAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AAE9D,SAAO,OAAO,WAAW;AAC3B;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/differenceInBusinessDays.ts"],"sourcesContent":["import { type Temporal, isPlainDate } from './shared/temporal';\nimport { isWeekendDay, isoDate } from './shared/businessDays';\n\n/**\n * Returns the number of business days (Monday–Friday) from earlierDate up to\n * laterDate: the earlier date counts, the later date does not. Holidays are\n * not considered. Swapping the arguments negates the result.\n *\n * Only calendar dates matter; times of day are ignored. Instant inputs use\n * their UTC date and ZonedDateTime inputs use their own timezone's date.\n * Convert both to one timezone first to count from a single perspective.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @returns Business days between the dates (negative if laterDate is earlier)\n *\n * @example\n * ```ts\n * const friday = Temporal.PlainDate.from('2025-01-24');\n * const nextFriday = Temporal.PlainDate.from('2025-01-31');\n *\n * differenceInBusinessDays(nextFriday, friday); // 5\n * differenceInBusinessDays(friday, nextFriday); // -5\n * ```\n */\nexport function differenceInBusinessDays(\n laterDate: Temporal.PlainDate,\n earlierDate: Temporal.PlainDate\n): number;\nexport function differenceInBusinessDays(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime\n): number;\nexport function differenceInBusinessDays(\n laterDate: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate,\n earlierDate: Temporal.Instant | Temporal.ZonedDateTime | Temporal.PlainDate\n): number {\n if (isPlainDate(laterDate) !== isPlainDate(earlierDate)) {\n throw new TypeError('PlainDate differences require two PlainDate values');\n }\n const later = isoDate(laterDate);\n const earlier = isoDate(earlierDate);\n const days = earlier.until(later, { largestUnit: 'days' }).days;\n const [from, span] = days < 0 ? [later, -days] : [earlier, days];\n\n // Every full week holds five business days; walk the remainder.\n const fullWeeks = Math.trunc(span / 7);\n let count = fullWeeks * 5;\n for (let day = from.add({ days: fullWeeks * 7 }), i = fullWeeks * 7; i < span; i++) {\n if (!isWeekendDay(day.dayOfWeek)) count++;\n day = day.add({ days: 1 });\n }\n return days < 0 && count !== 0 ? -count : count;\n}\n"],"mappings":";;;;;;;;;AAiCO,SAAS,yBACd,WACA,aACQ;AACR,MAAI,YAAY,SAAS,MAAM,YAAY,WAAW,GAAG;AACvD,UAAM,IAAI,UAAU,oDAAoD;AAAA,EAC1E;AACA,QAAM,QAAQ,QAAQ,SAAS;AAC/B,QAAM,UAAU,QAAQ,WAAW;AACnC,QAAM,OAAO,QAAQ,MAAM,OAAO,EAAE,aAAa,OAAO,CAAC,EAAE;AAC3D,QAAM,CAAC,MAAM,IAAI,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI;AAG/D,QAAM,YAAY,KAAK,MAAM,OAAO,CAAC;AACrC,MAAI,QAAQ,YAAY;AACxB,WAAS,MAAM,KAAK,IAAI,EAAE,MAAM,YAAY,EAAE,CAAC,GAAG,IAAI,YAAY,GAAG,IAAI,MAAM,KAAK;AAClF,QAAI,CAAC,aAAa,IAAI,SAAS,EAAG;AAClC,UAAM,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;AAAA,EAC3B;AACA,SAAO,OAAO,KAAK,UAAU,IAAI,CAAC,QAAQ;AAC5C;","names":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|