如何解决如何获取一周的日期范围以从核心数据中提取? 定义开始日期:创建请求:
如何在 Swift 代码数据 IOS 中查询日期范围?如果我存储属性:日期、早餐、午餐。如何查询我这周吃了什么饭?
解决方法
我能够使用以下代码获取当前周:
var today = Date()
//finds date for Sunday start of week
var todayweekdaycomp = Calendar.component(.weekday,from: Date())
let startOfWeekSunday = Calendar.current.date(byAdding: .day,value: -(todayweekdaycomp - 1),to: today)!
//finds date for Saturday end of week
let endOfWeekSatvalue = 7 - todayweekdaycomp
let endofWeekSat = Calendar.current.date(byAdding: .day,value: endOfWeekSatvalue,to: today)!
//array of dates this week
var arr: [Date] = []
for n in 1...7 {
arr.append(Calendar.current.date(byAdding: .day,value: n,to: startOfWeekSunday)!)
}
,
定义开始日期:
首先,您必须定义开始日期。这将帮助我们检索该日期的所有餐点。
如果您想从 7 天前获取它,请像这样定义:
let calendar = Calendar.current
let beginDate = calendar.date(byAdding: .day,value: -7,to: Date())!
如果您想从本周开始获得它,您首先需要添加此扩展程序:
extension Date {
func startOfWeek(using calendar: Calendar = Calendar(identifier: .gregorian)) -> Date {
calendar.dateComponents([.calendar,.yearForWeekOfYear,.weekOfYear],from: self).date!
}
}
然后你可以像这样定义你的开始日期:
let beginDate = Date().startOfWeek()
创建请求:
// Creating the predicate.
let predicate = NSPredicate(format: "%K >= %@",#keyPath(YourData.date),beginDate as NSDate)
let request: NSFetchRequest<YourData> = YourData.fetchRequest()
// Adding a predicate to your request.
request.predicate = predicate
请注意,您需要将“YourData”替换为您的膳食数据对象的类名。 准备好请求后,您可以照常获取它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。