0
我想通过单个日期组件(如month = 12)从我的数据库中筛选条目。请注意,我无法查询日期介于固定日期的条目,因为年份可能有所不同。按核心数据中的日期组件获取条目
它看起来/工作是这样的:
let request = NSPredicate(format: "date.month=%i", 12)
我想通过单个日期组件(如month = 12)从我的数据库中筛选条目。请注意,我无法查询日期介于固定日期的条目,因为年份可能有所不同。按核心数据中的日期组件获取条目
它看起来/工作是这样的:
let request = NSPredicate(format: "date.month=%i", 12)
你将不得不使用的时间间隔作谓语。
NSPredicate(format: "date >= %@ && date < %@", aDate, aDate.date(byAddingMonths:1))
请注意,您或许混合了NSFetchRequest
与你的问题NSPredicate
。
要添加一个月:
extension Date {
func date(byAddingMonths months: Int) -> Date {
var diff = DateComponents()
diff.month = months
return Calendar.current.date(byAdding: diff, to: self)!
}
}
编辑
澄清的问题后,它将显示你需要一个月的属性。为您的实体添加一个Int
属性,每当您更改日期时应自动填写该月份(覆盖didSet
)。以下是你如何从日期得到的月份:
let month = Calendar.current.component(.month, from:theDate)
编辑我的问题。据我所知,你的方法是指一年中单月的特定日期范围。正确?无论年份如何,我都需要找到每个条目可以说月= 11。 – matteok
@matteok没有真正的好办法做到这一点,因为“日期”不包括月份信息。你不得不在不同年份的日期重复使用这个答案。 –