DateComponents stores calendar fields without reading the current clock.

Build a fixed calendar value

month
date_components.swift
Replay: real traced execution (multi-file project)
import Foundation

let month = 6
let components = DateComponents(year: 2026, month: month, day: 1)
let message = "date=\(components.year!)-\(components.month!)-\(components.day!)"

print(message)
import Foundation

let month = 1
let components = DateComponents(year: 2026, month: month, day: 1)
let message = "date=\(components.year!)-\(components.month!)-\(components.day!)"

print(message)
import Foundation

let month = 12
let components = DateComponents(year: 2026, month: month, day: 1)
let message = "date=\(components.year!)-\(components.month!)-\(components.day!)"

print(message)
  1. month ← 6, components ← <NSDateComponents: ⟨addr A⟩>, message ← date=2026-6-1

    3let month→ 6 = 6  //@month=1, 124let components→ <NSDateComponents: ⟨addr A⟩> = DateComponents(year: 2026, month: month6, day: 1)5let message→ date=2026-6-1 = "date=\(components.yearOptional(2026)!)-\(components.monthOptional(6)!)-\(components.dayOptional(1)!)"67print(messagedate=2026-6-1)
    outputdate=2026-6-1
  1. month ← 1, components ← <NSDateComponents: ⟨addr A⟩>, message ← date=2026-1-1

    3let month→ 1 = 14let components→ <NSDateComponents: ⟨addr A⟩> = DateComponents(year: 2026, month: month1, day: 1)5let message→ date=2026-1-1 = "date=\(components.yearOptional(2026)!)-\(components.monthOptional(1)!)-\(components.dayOptional(1)!)"67print(messagedate=2026-1-1)
    outputdate=2026-1-1
  1. month ← 12, components ← <NSDateComponents: ⟨addr A⟩>, message ← date=2026-12-1

    3let month→ 12 = 124let components→ <NSDateComponents: ⟨addr A⟩> = DateComponents(year: 2026, month: month12, day: 1)5let message→ date=2026-12-1 = "date=\(components.yearOptional(2026)!)-\(components.monthOptional(12)!)-\(components.dayOptional(1)!)"67print(messagedate=2026-12-1)
    outputdate=2026-12-1
date components Date components are useful when a program needs named calendar fields such as year, month, and day.