Timepiece8. 1 minute later (iOS 7)
let components = NSDateComponents()
components.minute = 1
NSCalendar.currentCalendar().dateByAddingComponents(
components,
toDate: now,
options: .SearchBackwards
)
9. 1 minute later (iOS 8)
NSCalendar.currentCalendar().dateByAddingUnit(
.CalendarUnitMinute,
value: 1,
toDate: now,
options: .SearchBackwards
)
12. Specific date (iOS 8)
let now = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(…, fromDate: now)
components.year = 2014
components.month = 8
components.day = 15
components.hour = 20
components.minute = 25
components.second = 43
calendar.dateFromComponents(components)
14. End of this month (iOS 8)
let now = NSDate()
let calendar = NSCalendar.currentCalendar()
let lastDay = calendar.rangeOfUnit(.CalendarUnitDay,
inUnit: .CalendarUnitMonth, forDate: now).length
let components = calendar.components(…, fromDate: now)
components.year = 2014
components.month = 8
components.day = lastDay
components.hour = 20
components.minute = 25
components.second = 43
calendar.dateFromComponents(components)
16. Format date (iOS 8)
let threeDaysAgo = …
let formatter = NSDateFormatter()
formatter.dateFormat = “yyyy-MM-dd”
formatter.stringFromDate(threeDaysAgo)
18. How it works
• Int+Timepiece.swift
• 3.days -> Duration(3, .CalendarUnitDay)
• Duration.swift
• 3.days.later -> NSDate
• NSDate+Timepiece.swift
• + (lhs: NSDate, rhs: Duration) -> NSDate