Weekdays
Navigate to specific weekdays (Sunday through Saturday) in a month or year.
Weekday Numbers
Section titled “Weekday Numbers”Daytime uses standard JavaScript weekday numbering:
0- Sunday1- Monday2- Tuesday3- Wednesday4- Thursday5- Friday6- Saturday
Finding Weekdays
Section titled “Finding Weekdays”nextWeekday()
Section titled “nextWeekday()”Get the next occurrence of a specific weekday:
const date = daytime('2025-11-15')// Saturday
// Find next Mondaydate.nextWeekday(1)// "2025-11-17 Monday"
// Find next Wednesdaydate.nextWeekday(3)// "2025-11-19 Wednesday"
// If already on that weekday, returns the next occurrenceconst monday = daytime('2025-11-17')monday.nextWeekday(1)// "2025-11-24 Monday" (next Monday)prevWeekday()
Section titled “prevWeekday()”Get the previous occurrence of a specific weekday:
const date = daytime('2025-11-15')// Saturday
// Find previous Mondaydate.prevWeekday(1)// "2025-11-10 Monday"
// Find previous Fridaydate.prevWeekday(5)// "2025-11-14 Friday"
// If already on that weekday, returns the previous occurrenceconst monday = daytime('2025-11-17')monday.prevWeekday(1)// "2025-11-10 Monday" (previous Monday)nthWeekday()
Section titled “nthWeekday()”Get the nth occurrence of a weekday in the month:
const month = daytime('2025-11-15').startOf('month')// November 1, 2025
// Get 1st Monday of the monthmonth.nthWeekday(1, 1)// "2025-11-03 Monday"
// Get 2nd Monday of the monthmonth.nthWeekday(2, 1)// "2025-11-10 Monday"
// Get 1st Friday of the monthmonth.nthWeekday(1, 5)// "2025-11-07 Friday"
// Get 3rd Wednesday of the monthmonth.nthWeekday(3, 3)// "2025-11-19 Wednesday"lastWeekday()
Section titled “lastWeekday()”Get the last occurrence of a weekday in the month:
const month = daytime('2025-11-15').startOf('month')// November 1, 2025
// Get last Monday of the monthmonth.lastWeekday(1)// "2025-11-24 Monday"
// Get last Friday of the monthmonth.lastWeekday(5)// "2025-11-28 Friday"
// Get last Sunday of the monthmonth.lastWeekday(0)// "2025-11-30 Sunday"nearestWeekday()
Section titled “nearestWeekday()”Get the nearest weekday (Friday if Saturday, Monday if Sunday):
// If on Saturday, returns Fridayconst saturday = daytime('2025-11-15')saturday.nearestWeekday()// "2025-11-14 Friday"
// If on Sunday, returns Mondayconst sunday = daytime('2025-11-16')sunday.nearestWeekday()// "2025-11-17 Monday"
// If already a weekday, returns the same dateconst monday = daytime('2025-11-17')monday.nearestWeekday()// "2025-11-17 Monday" (same date)Examples
Section titled “Examples”Find Next Meeting Day
Section titled “Find Next Meeting Day”function getNextMeetingDay(date: Daytime, weekday: number): Daytime { return date.nextWeekday(weekday)}
const today = daytime('2025-11-15')// Saturday
const nextMonday = getNextMeetingDay(today, 1)console.log(nextMonday.format('YYYY-MM-DD dddd'))// "2025-11-17 Monday"
const nextFriday = getNextMeetingDay(today, 5)console.log(nextFriday.format('YYYY-MM-DD dddd'))// "2025-11-21 Friday"Get All Mondays in Month
Section titled “Get All Mondays in Month”function getAllWeekdaysInMonth(date: Daytime, weekday: number): Daytime[] { const month = date.clone().startOf('month') const days: Daytime[] = [] let current = month.nthWeekday(1, weekday) const monthEnd = month.clone().endOf('month') while (current.isSameOrBefore(monthEnd)) { days.push(current.clone()) current = current.nextWeekday(weekday) } return days}
const allMondays = getAllWeekdaysInMonth(daytime('2025-11-15'), 1)allMondays.forEach(day => { console.log(day.format('YYYY-MM-DD dddd'))})// "2025-11-03 Monday"// "2025-11-10 Monday"// "2025-11-17 Monday"// "2025-11-24 Monday"Payday Calculator (Last Friday)
Section titled “Payday Calculator (Last Friday)”function getPayday(date: Daytime): Daytime { const month = date.clone().startOf('month') return month.lastWeekday(5) // Last Friday}
const payday = getPayday(daytime('2025-11-15'))console.log(payday.format('YYYY-MM-DD dddd'))// "2025-11-28 Friday"Find First Monday After Date
Section titled “Find First Monday After Date”function getFirstMondayAfter(date: Daytime): Daytime { if (date.dayOfWeek() === 1) { return date.nextWeekday(1) } return date.nextWeekday(1)}
const date = daytime('2025-11-15')const firstMonday = getFirstMondayAfter(date)console.log(firstMonday.format('YYYY-MM-DD dddd'))// "2025-11-17 Monday"Get Weekday by Position
Section titled “Get Weekday by Position”function getWeekdayByPosition(year: number, month: number, n: number, weekday: number): Daytime { const monthDate = daytime(`${year}-${month}-01`) return monthDate.nthWeekday(n, weekday)}
// Get 3rd Wednesday of November 2025const wednesday = getWeekdayByPosition(2025, 11, 3, 3)console.log(wednesday.format('YYYY-MM-DD dddd'))// "2025-11-19 Wednesday"Weekend to Weekday
Section titled “Weekend to Weekday”function ensureWeekday(date: Daytime): Daytime { if (date.isWeekend()) { return date.nearestWeekday() } return date.clone()}
const weekend = daytime('2025-11-15')// Saturday
const weekday = ensureWeekday(weekend)console.log(weekday.format('YYYY-MM-DD dddd'))// "2025-11-14 Friday"