我有一个包含4个字段startdate,enddate,starttime和endtime的表。我需要设置类似
的谓词if
startdate<= currentdate and currentdate <= enddate
if
starttime <= currenttime and endtime <= endtime
else
starttime <= currenttime and currenttime<= 23.00 or 0.00 <= currentime and currentime <= endtime
我如何为这种类型的条件设置谓词。当前日期和当前时间是我在gmt中的系统时间。
答案 0 :(得分:0)
您可以使用NSCompoundPredicate
创建NSMutableArray
以保存谓词及其条件
NSMutableArray *conditions = [NSMutableArray array];
构建条件并将它们添加到此数组
[conditions addObject:[NSPredicate predicateWithFormat:@"startdate <= %@ AND enddate <= %@",[NSDate date],[NSDate date]]];
添加任意数量的条件。最后建立你的NSCompoundPredicate
NSPredicate *predicate = [NSCompoundPredicate andPredicateWithSubpredicates:conditions];
如果您的startdate
和enddate
格式为NSDate
,您也可以访问时间组件,则无需单独starttime
和{{1}只是比较两个日期,应该没问题。