Skip to content

getLocaleZonedEndOfWeek

getLocaleZonedEndOfWeek(value: string, locale: string | string[], optionsArg?: { fractionalSecondDigits?: FractionalDigit; }): string

Return the end of the week containing value, using locale’s first day of week (e.g. en-US: week ends Saturday, fr-FR: week ends Sunday).

  • Resolves the locale’s first day of week via Intl.Locale.prototype.weekInfo.
  • Falls back to Monday-start (so the week ends Sunday) if the runtime’s weekInfo data doesn’t resolve a first day for the locale.
  • Returns the last instant of the real local week containing value in its own zone — one nanosecond before the next week bucket starts — so the result is never before value.
  • The end is written at nanosecond precision by default (.999999999), like endOfZoned, so the string names the end itself. Pass { fractionalSecondDigits: 0 } to keep the previous whole-second string.
  • Distinct from endOfZoned(value, "week", { weekStartsOn }), which takes an explicit ISO-biased weekStartsOn option instead of deriving it from a locale.
  • Returns "" 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
valuestringzoned ISO 8601 datetime string
localestring | string[]BCP 47 locale tag (e.g. “en-US”, “fr-FR”), 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 ""

optionsArg

optional setting for the precision of the output string

OptionTypeDefaultDescription
fractionalSecondDigits?0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | "auto" | 8 | 9 (FractionalDigit)9The number of fractional-second digits the result is written with, 0 to 9, or "auto" to drop trailing zeros. Fewer than 9 digits truncate the string, as Temporal’s toString does, so it names a moment before the end.

zoned ISO 8601 string for the end of value’s locale-relative week, or "" on invalid input

import { getLocaleZonedEndOfWeek } from "@northguild/gmt/zoned/calculate";
getLocaleZonedEndOfWeek("2024-02-29T12:00:00+00:00[UTC]", "en-US") // "2024-03-02T23:59:59.999999999+00:00[UTC]" (Saturday)
output 

zoned/calculate/getLocaleZonedEndOfWeek.ts