Skip to content

nextWeekday

nextWeekday(value: string, dayOfWeek: number, options?: { inclusive?: boolean; }): string

Return a PlainDate ISO string for the next occurrence of dayOfWeek on or after value.

  • dayOfWeek uses Temporal’s ISO numbering: 1 (Monday) through 7 (Sunday), consistent with getDayOfWeek/parseDayOfWeekFromDate.

  • Returns "" on invalid input. Replaces date-fns’s sixteen next* functions with one parameterized call:

    date-fnsgmt
    nextMondaynextWeekday(value, 1)
    nextTuesdaynextWeekday(value, 2)
    nextWednesdaynextWeekday(value, 3)
    nextThursdaynextWeekday(value, 4)
    nextFridaynextWeekday(value, 5)
    nextSaturdaynextWeekday(value, 6)
    nextSundaynextWeekday(value, 7)
    nextDay(v, n)nextWeekday(value, n)
ParameterTypeDescription
valuestringISO PlainDate string
dayOfWeeknumbertarget ISO day of week (1-7, Monday-Sunday)

options

Whether value itself can be the result

OptionTypeDefaultDescription
inclusive?booleanfalseWhether value counts when it already falls on dayOfWeek. true returns value unchanged; false advances a full week.

ISO PlainDate string for the next occurrence of dayOfWeek, or "" on invalid input

import { nextWeekday } from "@northguild/gmt/plain/calculate";
nextWeekday("2024-03-15", 5) // "2024-03-22" (2024-03-15 is already a Friday, so it advances a full week)
output 

plain/calculate/nextWeekday.ts