Add basic storage, temperature history display
This commit is contained in:
65
TempTrack/Extensions/Date+Extensions.swift
Normal file
65
TempTrack/Extensions/Date+Extensions.swift
Normal file
@ -0,0 +1,65 @@
|
||||
import Foundation
|
||||
|
||||
extension Date {
|
||||
|
||||
var seconds: Int {
|
||||
timeIntervalSince1970.roundedInt
|
||||
}
|
||||
|
||||
var secondsToNow: Int {
|
||||
-timeIntervalSinceNow.roundedInt
|
||||
}
|
||||
|
||||
init(seconds: Int) {
|
||||
self.init(timeIntervalSince1970: TimeInterval(seconds))
|
||||
}
|
||||
|
||||
var timePassedText: String {
|
||||
let secs = secondsToNow
|
||||
guard secs > 1 else {
|
||||
return "Now"
|
||||
}
|
||||
guard secs >= 60 else {
|
||||
return "\(secs) seconds ago"
|
||||
}
|
||||
let minutes = secs / 60
|
||||
guard minutes > 1 else {
|
||||
return "1 minute ago"
|
||||
}
|
||||
guard minutes >= 60 else {
|
||||
return "\(minutes) minutes ago"
|
||||
}
|
||||
let hours = minutes / 60
|
||||
guard hours > 1 else {
|
||||
return "1 hour ago"
|
||||
}
|
||||
guard hours >= 60 else {
|
||||
return "\(hours) hours ago"
|
||||
}
|
||||
let days = hours / 24
|
||||
guard days > 1 else {
|
||||
return "1 day ago"
|
||||
}
|
||||
return "\(days) days ago"
|
||||
}
|
||||
|
||||
var dateIndex: Int {
|
||||
let components = Calendar.current.dateComponents([.day, .month, .year], from: self)
|
||||
return components.year! * 10000 + components.month! * 100 + components.day!
|
||||
}
|
||||
|
||||
init(dateIndex: Int) {
|
||||
let year = dateIndex / 10000
|
||||
let month = (dateIndex % 10000) / 100
|
||||
let day = dateIndex % 100
|
||||
self = Calendar.current.date(from: .init(year: year, month: month, day: day))!
|
||||
}
|
||||
|
||||
var startOfDay: Date {
|
||||
Calendar.current.startOfDay(for: self)
|
||||
}
|
||||
|
||||
var startOfNextDay: Date {
|
||||
startOfDay.addingTimeInterval(86400)
|
||||
}
|
||||
}
|
8
TempTrack/Extensions/Double+Extensions.swift
Normal file
8
TempTrack/Extensions/Double+Extensions.swift
Normal file
@ -0,0 +1,8 @@
|
||||
import Foundation
|
||||
|
||||
extension Double {
|
||||
|
||||
var roundedInt: Int {
|
||||
Int(rounded())
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user