| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- import CoreData
- import Foundation
- extension Date {
- static var startOfToday: Date {
- Calendar.current.startOfDay(for: Date())
- }
- static var oneDayAgoInMinutes: Date {
- Calendar.current.date(byAdding: .minute, value: -1440, to: Date())!
- }
- static var oneDayAgo: Date {
- Calendar.current.date(byAdding: .day, value: -1, to: Date())!
- }
- static var oneHourAgo: Date {
- Calendar.current.date(byAdding: .minute, value: -60, to: Date())!
- }
- static var halfHourAgo: Date {
- Calendar.current.date(byAdding: .minute, value: -30, to: Date())!
- }
- static var twentyMinutesAgo: Date {
- Calendar.current.date(byAdding: .minute, value: -20, to: Date())!
- }
- static var twoHoursAgo: Date {
- Calendar.current.date(byAdding: .hour, value: -2, to: Date())!
- }
- static var fourHoursAgo: Date {
- Calendar.current.date(byAdding: .hour, value: -4, to: Date())!
- }
- static var sixHoursAgo: Date {
- Calendar.current.date(byAdding: .hour, value: -6, to: Date())!
- }
- static var oneWeekAgo: Date {
- Calendar.current.date(byAdding: .day, value: -7, to: Date())!
- }
- static var oneMonthAgo: Date {
- Calendar.current.date(byAdding: .month, value: -1, to: Date())!
- }
- static var threeMonthsAgo: Date {
- Calendar.current.date(byAdding: .month, value: -3, to: Date())!
- }
- }
- extension NSPredicate {
- static let all = NSPredicate(format: "TRUEPREDICATE")
- static let none = NSPredicate(format: "FALSEPREDICATE")
- static var predicateForOneDayAgoInMinutes: NSPredicate {
- let date = Date.oneDayAgoInMinutes
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var predicateForOneDayAgo: NSPredicate {
- let date = Date.oneDayAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var carbsHistory: NSPredicate {
- let date = Date.oneDayAgo
- return NSPredicate(format: "date >= %@ AND carbs > 0", date as NSDate)
- }
- static var predicateForOneHourAgo: NSPredicate {
- let date = Date.oneHourAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var predicateFor30MinAgo: NSPredicate {
- let date = Date.halfHourAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var predicateFor20MinAgo: NSPredicate {
- let date = Date.twentyMinutesAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var predicateFor30MinAgoForDetermination: NSPredicate {
- let date = Date.halfHourAgo
- return NSPredicate(format: "deliverAt >= %@", date as NSDate)
- }
- static var predicateFor120MinAgo: NSPredicate {
- let date = Date.twoHoursAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var predicateForFourHoursAgo: NSPredicate {
- let date = Date.fourHoursAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var predicateForSixHoursAgo: NSPredicate {
- let date = Date.sixHoursAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var predicateForOneWeek: NSPredicate {
- let date = Date.oneWeekAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var predicateForOneMonth: NSPredicate {
- let date = Date.oneMonthAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- static var predicateForThreeMonths: NSPredicate {
- let date = Date.threeMonthsAgo
- return NSPredicate(format: "date >= %@", date as NSDate)
- }
- }
|