美文网首页收藏ios
判断时间在某个范围内

判断时间在某个范围内

作者: 超_iOS | 来源:发表于2017-12-26 17:33 被阅读13次

    [self isBetweenFromHour:6 toHour:18]

    
    #pragma  mark -  判断时间在范围内
    
    
    - (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)
        {
            DLog(@"该时间在 %ld:00-%ld:00 之间!", fromHour, toHour);
            return YES;
        }
        return NO;
    }
    
    
    - (NSDate *)getCustomDateWithHour:(NSInteger)hour
    {
        //获取当前时间
        NSDate *currentDate = [NSDate date];
        NSCalendar *currentCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
        NSDateComponents *currentComps = [[NSDateComponents alloc] init];
        
        NSInteger unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekday | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
        
        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:NSCalendarIdentifierGregorian];
        return [resultCalendar dateFromComponents:resultComps];
    }```

    相关文章

      网友评论

        本文标题:判断时间在某个范围内

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