Skip to content

Instantly share code, notes, and snippets.

@demonar
Last active September 15, 2015 02:33
Show Gist options
  • Save demonar/9b60a962111bb6049030 to your computer and use it in GitHub Desktop.
Save demonar/9b60a962111bb6049030 to your computer and use it in GitHub Desktop.
import Foundation
extension NSDate {
func coolDate() -> String {
if self.minutesFromNow() < 1 {
return "Now"
} else if self.minutesFromNow() < 60 {
return numberWithSuffix(self.minutesFromNow(), "m", false)
} else if self.hoursFromNow() < 24 {
return numberWithSuffix(self.hoursFromNow(), "h", false)
} else if self.daysFromNow() < 8 {
return numberWithSuffix(self.daysFromNow(), "d", false)
} else if self.weeksFromNow() < 4 {
return numberWithSuffix(self.weeksFromNow(), "w", false)
} else if self.monthsFromNow() < 12 {
return numberWithSuffix(self.monthsFromNow(), "M", false)
} else {
return numberWithSuffix(self.yearsFromNow(), "y", false)
}
}
func minutesFromNow() -> Int { return self.timeFrom(60) }
func hoursFromNow() -> Int { return self.timeFrom(3600) }
func daysFromNow() -> Int { return self.timeFrom(86400) }
func weeksFromNow() -> Int { return self.timeFrom(648000) }
func monthsFromNow() -> Int { return self.timeFrom(2592000) }
func yearsFromNow() -> Int { return self.timeFrom(31536000) }
func timeFrom(timeUnit: Double) -> Int {
return Int(self.timeIntervalSinceNow / timeUnit) * (self.timeIntervalSinceNow < 0 ? -1 : 1)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment