@burglekitt/gmt
Version:
Temporal-based date and time utilities with timezone support and polyfill integration
24 lines (23 loc) • 1.34 kB
TypeScript
/**
* Return true when `value`'s local calendar day falls on a weekend for `locale`.
*
* - Uses `Intl.Locale.prototype.weekInfo` to resolve which ISO weekday
* numbers count as "weekend" for the locale (e.g. en-US: Sat/Sun,
* he-IL/ar-SA: Fri/Sat).
* - Checks the ZonedDateTime's own local day of week — no separate timezone
* conversion needed, since `value` already carries its IANA timezone.
* - Falls back to Saturday/Sunday if the runtime's `weekInfo` data doesn't
* resolve a weekend for the locale.
* - Returns false if `value` or `locale` is invalid.
*
* @param value ISO ZonedDateTime string
* @param locale BCP 47 locale tag (e.g. "en-US", "he-IL")
* @returns true if `value`'s local day is a weekend day in `locale`, false on invalid input
*
* @example isZonedWeekend("2024-02-03T10:00:00-05:00[America/New_York]", "en-US") // true (Saturday)
* @example isZonedWeekend("2024-02-02T10:00:00+02:00[Asia/Jerusalem]", "he-IL") // true (Friday, he-IL weekend is Fri/Sat)
* @example isZonedWeekend("2024-02-04T10:00:00+02:00[Asia/Jerusalem]", "he-IL") // false (Sunday)
* @example isZonedWeekend("invalid", "en-US") // false
* @example isZonedWeekend("2024-02-03T10:00:00-05:00[America/New_York]", "not-a-locale") // false
*/
export declare function isZonedWeekend(value: string, locale: string): boolean;