Dates, Formatting, and Text
Date Interval Math
Date and time calculations often start with a duration in days or seconds.
Convert days to seconds
date_interval_math.swift
Replay: real traced execution (multi-file project)
import Foundation
let days = 3
let duration = DateComponents(day: days)
let secondsPerDay = 24 * 60 * 60
let seconds = duration.day! * secondsPerDay
let message = "seconds=\(seconds)"
print(message)
import Foundation
let days = 1
let duration = DateComponents(day: days)
let secondsPerDay = 24 * 60 * 60
let seconds = duration.day! * secondsPerDay
let message = "seconds=\(seconds)"
print(message)
import Foundation
let days = 7
let duration = DateComponents(day: days)
let secondsPerDay = 24 * 60 * 60
let seconds = duration.day! * secondsPerDay
let message = "seconds=\(seconds)"
print(message)
days ← 3, duration ← <NSDateComponents: ⟨addr A⟩>, secondsPerDay ← 86400
3let days→ 3 = 3 //@days=1, 74let duration→ <NSDateComponents: ⟨addr A⟩> = DateComponents(day: days3)5let secondsPerDay→ 86400 = 24 * 60 * 606let seconds→ 259200 = duration.dayOptional(3)! * secondsPerDay864007let message→ seconds=259200 = "seconds=\(seconds259200)"89print(messageseconds=259200)outputseconds=259200
days ← 1, duration ← <NSDateComponents: ⟨addr A⟩>, secondsPerDay ← 86400
3let days→ 1 = 14let duration→ <NSDateComponents: ⟨addr A⟩> = DateComponents(day: days1)5let secondsPerDay→ 86400 = 24 * 60 * 606let seconds→ 86400 = duration.dayOptional(1)! * secondsPerDay864007let message→ seconds=86400 = "seconds=\(seconds86400)"89print(messageseconds=86400)outputseconds=86400
days ← 7, duration ← <NSDateComponents: ⟨addr A⟩>, secondsPerDay ← 86400
3let days→ 7 = 74let duration→ <NSDateComponents: ⟨addr A⟩> = DateComponents(day: days7)5let secondsPerDay→ 86400 = 24 * 60 * 606let seconds→ 604800 = duration.dayOptional(7)! * secondsPerDay864007let message→ seconds=604800 = "seconds=\(seconds604800)"89print(messageseconds=604800)outputseconds=604800
duration
A fixed duration can be converted into smaller units before a program stores or displays it.