| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import CoreData
- import Foundation
- extension 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 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 predicateForOneDayAgo: NSPredicate {
- let date = Date.oneDayAgo
- return NSPredicate(format: "date >= %@", 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 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)
- }
- }
|