需要检查当前时间间隔是否位于目标c的开始和结束时间之间

时间:2011-06-24 07:21:19

标签: iphone xcode nsdate

我想知道当前时间是否存在于开始时间和输入之间,两者(开始时间和结束时间)都是静态的。这样的事情假设我现在的时间是10:15 AM,开始时间是上午9:15,结束时间是上午11:00。所以这应该是函数应该返回我在这种情况下的BOOL值是,现在假设我的当前时间是12:00 AM然后该函数应该返回一个bool值NO。所以我对如何创建这样一个能够完成上述技巧的函数(方法)感到困惑。请注意,开始时间和结束时间将在同一天。

2 个答案:

答案 0 :(得分:1)

NSDate具有您执行此操作所需的所有功能。查看文档。

答案 1 :(得分:0)

  NSDate * now = [NSDate date];
    NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
    [outputFormatter setDateFormat:@"HH:mm:ss"];

  //current time
    NSString *currentTimeString = [outputFormatter stringFromDate:now];
    NSDate *dateCurrent = [outputFormatter dateFromString:currentTimeString];


    NSString *timeStart = @"09:00:00";
    NSString *timeEnd = @"22:00:00";

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"HH:mm:ss"];

    NSDate *dateStart= [formatter timeStart];
    NSDate *dateEnd = [formatter timeEnd];
    NSComparisonResult result = [dateCurrent compare:dateStart];
    NSComparisonResult resultSecond = [date2 compare:dateEnd];

  if(result == NSOrderedDescending && resultSecond == NSOrderedDescending)
    {
        NSLog(@"current time lies in starting and end time");

}else {
        NSLog(@"current time don't lie in starting and end time");

    }