美文网首页
iOS - 判断当前时间是否在某个时间段

iOS - 判断当前时间是否在某个时间段

作者: 别人家的程序员 | 来源:发表于2017-06-29 10:24 被阅读287次
    //使用示例
    if ([self isBetweenFromHour:9 toHour:10]) {  
    }  
    
    /** 
     * 判断当前时间是否在fromHour和toHour之间。如,fromHour=8,toHour=23时,即为判断当前时间是否在8:00-23:00之间 
     */  
    - (BOOL)isBetweenFromHour:(NSInteger)fromHour toHour:(NSInteger)toHour {  
          
        NSDate *dateFrom = [self getCustomDateWithHour:fromHour];  
        NSDate *dateTo = [self getCustomDateWithHour:toHour];  
          
        NSDate *currentDate = [NSDate date];  
        if ([currentDate compare:dateFrom]==NSOrderedDescending && [currentDate compare:dateTo]==NSOrderedAscending) {  
            // 当前时间在9点和10点之间  
            return YES;  
        }  
        return NO;  
    }  
      
    /** 
     * @brief 生成当天的某个点(返回的是伦敦时间,可直接与当前时间[NSDate date]比较) 
     * @param hour 如hour为“8”,就是上午8:00(本地时间) 
     */  
    - (NSDate *)getCustomDateWithHour:(NSInteger)hour {  
        //获取当前时间  
        NSDate *currentDate = [NSDate date];  
        NSCalendar *currentCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
        NSDateComponents *currentComps = [[NSDateComponents alloc] init];  
          
        NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;  
          
        currentComps = [currentCalendar components:unitFlags fromDate:currentDate];  
          
        //设置当天的某个点  
        NSDateComponents *resultComps = [[NSDateComponents alloc] init];  
        [resultComps setYear:[currentComps year]];  
        [resultComps setMonth:[currentComps month]];  
        [resultComps setDay:[currentComps day]];  
        [resultComps setHour:hour];  
          
        NSCalendar *resultCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
        return [resultCalendar dateFromComponents:resultComps];  
    } 
    

    相关文章

      网友评论

          本文标题:iOS - 判断当前时间是否在某个时间段

          本文链接:https://www.haomeiwen.com/subject/luhmcxtx.html