Fixed dates make date formatting deterministic and easy to replay.

Date A `Date` stores a specific moment, and formatting code decides how to display it.

Date Formatting

daysToAdd
date.ts
Replay: real traced execution (multi-file project)
function addDays(date: Date, days: number): Date {
    const next: Date = new Date(date.getTime());
    next.setUTCDate(next.getUTCDate() + days);
    return next;
}

const daysToAdd: number = 3;
const start: Date = new Date("2025-01-10T00:00:00Z");
const finish: Date = addDays(start, daysToAdd);
const text: string = finish.toISOString().slice(0, 10);

console.log(`finish=${text}`);
function addDays(date: Date, days: number): Date {
    const next: Date = new Date(date.getTime());
    next.setUTCDate(next.getUTCDate() + days);
    return next;
}

const daysToAdd: number = 1;
const start: Date = new Date("2025-01-10T00:00:00Z");
const finish: Date = addDays(start, daysToAdd);
const text: string = finish.toISOString().slice(0, 10);

console.log(`finish=${text}`);
function addDays(date: Date, days: number): Date {
    const next: Date = new Date(date.getTime());
    next.setUTCDate(next.getUTCDate() + days);
    return next;
}

const daysToAdd: number = 7;
const start: Date = new Date("2025-01-10T00:00:00Z");
const finish: Date = addDays(start, daysToAdd);
const text: string = finish.toISOString().slice(0, 10);

console.log(`finish=${text}`);
  1. daysToAdd ← 3, start ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)

    4    return next;5}67const daysToAdd→ 3: number = 3;  //@daysToAdd=1, 78const start→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date("2025-01-10T00:00:00Z");9const finish: Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd3);10const text: string = finish.toISOString().slice(0, 10);
  2. next ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)

    1function addDays(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date, days3: number): Date {2    const next→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getTime());3    next.setUTCDate(next→ Mon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getUTCDate() + days3);4    return nextMon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time);5}
  3. finish ← Mon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time)

    7const daysToAdd: number = 3;  //@daysToAdd=1, 78const start: Date = new Date("2025-01-10T00:00:00Z");9const finish→ Mon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd3);10const text→ 2025-01-13: string = finishMon Jan 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time).toISOString().slice(0, 10);1112console.log(`finish=${text2025-01-13}`);
    outputfinish=2025-01-13
  1. daysToAdd ← 1, start ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)

    4    return next;5}67const daysToAdd→ 1: number = 1;8const start→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date("2025-01-10T00:00:00Z");9const finish: Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd1);10const text: string = finish.toISOString().slice(0, 10);
  2. next ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)

    1function addDays(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date, days1: number): Date {2    const next→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getTime());3    next.setUTCDate(next→ Sat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getUTCDate() + days1);4    return nextSat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time);5}
  3. finish ← Sat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time)

    7const daysToAdd: number = 1;8const start: Date = new Date("2025-01-10T00:00:00Z");9const finish→ Sat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd1);10const text→ 2025-01-11: string = finishSat Jan 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time).toISOString().slice(0, 10);1112console.log(`finish=${text2025-01-11}`);
    outputfinish=2025-01-11
  1. daysToAdd ← 7, start ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)

    4    return next;5}67const daysToAdd→ 7: number = 7;8const start→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date("2025-01-10T00:00:00Z");9const finish: Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd7);10const text: string = finish.toISOString().slice(0, 10);
  2. next ← Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)

    1function addDays(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date, days7: number): Date {2    const next→ Fri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = new Date(dateFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getTime());3    next.setUTCDate(next→ Fri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time).getUTCDate() + days7);4    return nextFri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time);5}
  3. finish ← Fri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time)

    7const daysToAdd: number = 7;8const start: Date = new Date("2025-01-10T00:00:00Z");9const finish→ Fri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time): Date = addDays(startFri Jan 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time), daysToAdd7);10const text→ 2025-01-17: string = finishFri Jan 17 2025 00:00:00 GMT+0000 (Coordinated Universal Time).toISOString().slice(0, 10);1112console.log(`finish=${text2025-01-17}`);
    outputfinish=2025-01-17