Build a fixed date label from year, month, and day parts.

local-date-basics A date can be represented as separate year, month, and day fields before it is formatted.

Local Date Basics

year
LocalDateBasics.kt
Replay: real traced execution (multi-file project)
fun twoDigits(value: Int): String {
    return value.toString().padStart(2, '0')
}

fun main() {
    val year = 2026
    val month = 4
    val day = 15
    val iso = "$year-${twoDigits(month)}-${twoDigits(day)}"

    println("year=$year")
    println("month=${twoDigits(month)}")
    println("date=$iso")
}
fun twoDigits(value: Int): String {
    return value.toString().padStart(2, '0')
}

fun main() {
    val year = 2025
    val month = 4
    val day = 15
    val iso = "$year-${twoDigits(month)}-${twoDigits(day)}"

    println("year=$year")
    println("month=${twoDigits(month)}")
    println("date=$iso")
}
fun twoDigits(value: Int): String {
    return value.toString().padStart(2, '0')
}

fun main() {
    val year = 2027
    val month = 4
    val day = 15
    val iso = "$year-${twoDigits(month)}-${twoDigits(day)}"

    println("year=$year")
    println("month=${twoDigits(month)}")
    println("date=$iso")
}
  1. year ← 2026, month ← 4, day ← 15

    5fun main() {6    val year→ 2026 = 2026 //@year=2025, 20277    val month→ 4 = 48    val day→ 15 = 159    val iso = "$year2026-${twoDigits(month4)}-${twoDigits(day15)}"
  2. fun twoDigits(value: Int): String

    pass 1 of 3
    1fun twoDigits(value4: Int): String {2    return value4.toString().padStart(2, '0')3}
    All 3 passes — pass 1 is the card above
    passvalue
    14
    215
    34
  3. iso ← 2026-04-15

    8val day = 159val iso→ 2026-04-15 = "$year2026-${twoDigits(month4)}-${twoDigits(day15)}"1011println("year=$year2026")12println("month=${twoDigits(month4)}")13println("date=$iso")
    outputyear=2026
  4. println("month=${twoDigits(month)}")

    11    println("year=$year")12    println("month=${twoDigits(month4)}")13    println("date=$iso2026-04-15")14}
    outputmonth=04
    date=2026-04-15
  1. year ← 2025, month ← 4, day ← 15

    5fun main() {6    val year→ 2025 = 20257    val month→ 4 = 48    val day→ 15 = 159    val iso = "$year2025-${twoDigits(month4)}-${twoDigits(day15)}"
  2. fun twoDigits(value: Int): String

    pass 1 of 3
    1fun twoDigits(value4: Int): String {2    return value4.toString().padStart(2, '0')3}
    All 3 passes — pass 1 is the card above
    passvalue
    14
    215
    34
  3. iso ← 2025-04-15

    8val day = 159val iso→ 2025-04-15 = "$year2025-${twoDigits(month4)}-${twoDigits(day15)}"1011println("year=$year2025")12println("month=${twoDigits(month4)}")13println("date=$iso")
    outputyear=2025
  4. println("month=${twoDigits(month)}")

    11    println("year=$year")12    println("month=${twoDigits(month4)}")13    println("date=$iso2025-04-15")14}
    outputmonth=04
    date=2025-04-15
  1. year ← 2027, month ← 4, day ← 15

    5fun main() {6    val year→ 2027 = 20277    val month→ 4 = 48    val day→ 15 = 159    val iso = "$year2027-${twoDigits(month4)}-${twoDigits(day15)}"
  2. fun twoDigits(value: Int): String

    pass 1 of 3
    1fun twoDigits(value4: Int): String {2    return value4.toString().padStart(2, '0')3}
    All 3 passes — pass 1 is the card above
    passvalue
    14
    215
    34
  3. iso ← 2027-04-15

    8val day = 159val iso→ 2027-04-15 = "$year2027-${twoDigits(month4)}-${twoDigits(day15)}"1011println("year=$year2027")12println("month=${twoDigits(month4)}")13println("date=$iso")
    outputyear=2027
  4. println("month=${twoDigits(month)}")

    11    println("year=$year")12    println("month=${twoDigits(month4)}")13    println("date=$iso2027-04-15")14}
    outputmonth=04
    date=2027-04-15