Skip to content

isZonedWeekend

isZonedWeekend(value: string, locale: string | string[]): boolean

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 is invalid or locale is not a well-formed BCP 47 tag (ECMA-402 IsWellFormedLanguageTag). A well-formed tag with no matching locale data is not an error: it falls back to the host’s default locale, as ECMA-402 ResolveLocale requires.
ParameterTypeDescription
valuestringISO ZonedDateTime string
localestring | string[]BCP 47 locale tag (e.g. “en-US”, “he-IL”), or a preference list of tags (ECMA-402; the first with locale data is read). Required: omitted, or an empty list (which ECMA-402 would resolve to the host default), returns false

true if value’s local day is a weekend day in locale, false on invalid input

import { isZonedWeekend } from "@northguild/gmt/zoned/compare";
isZonedWeekend("2024-02-03T10:00:00-05:00[America/New_York]", "en-US") // true (Saturday)
output 

zoned/compare/isZonedWeekend.ts