我正在使用故事板和核心数据开发一个iPad应用程序。在我的核心数据中,我有一个表有5个字段startdate,enddate,starttime和endtime。这些字段中存储的值是gmt值。如何设置检查当前时间的谓词是在startdate和enddate之间。和开始时间和结束时间
下面给出了样本数据。
表A
名称| startdate |结束| starttime |结束时间
A | 2013年3月31日| 2014年3月31日| 5.30 | 17.40
B | 2011年3月31日| 31/12/2012 | 6.30 | 12.40
c | 2011年3月31日| 2015年12月31日| 6.30 | 8.40
此处所有值均以gmt为单位。我需要检查当前日期(gmt)是否在startdate和enddate.here名称' A'和' c'满足我的条件。如果满足日期检查当前时间(gmt)是在开始时间和结束时间之间。这里' B'只满足这个条件。我怎么写谓词
答案 0 :(得分:0)
如果您只想获取startdate和enddate之间的内容,请使用以下内容:
NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"startdate >= %@ AND enddate <= %@"
, startdate
, enddate];
如果你想在start和enddate之间获取一个,在starttime和endtime之间使用这样的东西:
NSPredicate *predicate = [NSPredicate
predicateWithFormat:@"(startdate >= %@ AND enddate <= %@) AND (starttime >= %@ AND endtime <= %@)"
, startdate
, enddate
, starttime
, endtime];
答案 1 :(得分:-1)
使用TimeInterval
,它会是这样的:
NSDate *startDate = ...;
NSDate *endDate =...;
NSDate *currentDate = [NSDate date];
NSTimeInterval currentTimeInterval = [currentDate timeIntervalSince1970];
BOOL isBetween = currentTimeInterval >= [startDate timeIntervalSince1970] && currentTimeInterval <= [endDate timeIntervalSince1970];