我正在上课的iphone应用程序,我的小组有时间麻烦。
我们正在使用的想法是我们有预定的活动(比如说下午2:00),我们想知道我们是否在预定时间(比如+/- 15分钟)之内的一定时间内。因此,对于此示例,如果事件发生在下午2点,如果从1:45-2:15 pm调用此事件,则该方法将返回true / yes,否则将返回false / no。
我知道当前的时间/日期,但是如何检查是否在事件发生时间的某个时间范围内? ?
所以我想要的是一个类似于下面的方法,currentTime获取当前时间的NSDate对象,classStartTime获取类的开始时间的NSDate对象:
- (BOOL)dateInRange:(NSDate*)currentTime inRangeOf:(NSDate*)classStartTime
{
if([currentTime <= [classStartTime dateByAddingTimeInterval:60*15]] && [currentTime >= [classStartTime dateByAddingTimeInterval:-(60*15)]])
{
return TRUE;
}
else{
return FALSE;
}
}
我知道这不起作用。如何使if语句的比较部分正常工作
答案 0 :(得分:0)
我想,你的时间是NSDate。您可以将TimeIntervalSinceDate:
与间隔的开始时间一起使用,并检查结果是否为正且小于间隔长度。
答案 1 :(得分:0)
使用NSDate
和NSDateComponents
。我附近没有Mac,因此下面的代码可能会有错误。
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
int comp = NSHourCalendarUnit | NSMinuteCalendarUnit;
NSDateComponents *theDateComponents = [gregorian components:comp fromDate:[NSDate date]];
int hour = [theDateComponents hour];
int minute = [theDateComponents minute];
if ((hour == 13 && minute >= 45) || (hour == 14 && minute <= 15)) {
//do your stuff
}
希望有所帮助
答案 2 :(得分:0)
查找开始日期和结束日期 +(id)dateWithTimeInterval:(NSTimeInterval)seconds sinceDate:(NSDate *)date
然后使用比较方法检查您检查的日期是否在您的日期之内......