ios- Check whether current time is between two times or not

后端 未结 4 1655
后悔当初
后悔当初 2020-12-09 23:12

I want to check whether the current time is between two time or not.

For example, I want to check if the current time is between today morning 10AM to 12PM or Tomorr

相关标签:
4条回答
  • 2020-12-09 23:54

    In Swift:

    let componets = Calendar.current.dateComponents([.hour, .minute, .second], from: Date())
    let currentHour = componets.hour
    let currentMinute = componets.minute
    let currentSecond = componets.second
    
    if currentHour! < 7 || currentHour! > 21 {
        print ("do something")
    } else {
        print ("do nothing")
    }
    
    0 讨论(0)
  • 2020-12-09 23:58

    Try this

    NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:[NSDate date]];
    NSInteger currentHour = [components hour];
    NSInteger currentMinute = [components minute];
    NSInteger currentSecond = [components second];
    
    if (currentHour < 7 || (currentHour > 21 || currentHour == 21 && (currentMinute > 0 || currentSecond > 0))) {
        // Do Something
    }
    

    Replace 7, 21 with your time

    I get this from How to compare time

    0 讨论(0)
  • 2020-12-10 00:03

    This Solution is for swift 4

    Get current time from the system and then check it exist that range or not . In this case time range is 10:00 am to 6:00 pm


    func CheckTimeExist()->Bool{
    
    var timeExist:Bool
    let calendar = Calendar.current
    let startTimeComponent = DateComponents(calendar: calendar, hour:10)
    let endTimeComponent   = DateComponents(calendar: calendar, hour: 18, minute: 00)
    
    let now = Date()
    let startOfToday = calendar.startOfDay(for: now)
    let startTime    = calendar.date(byAdding: startTimeComponent, to: 
    startOfToday)!
    let endTime      = calendar.date(byAdding: endTimeComponent, to: 
    startOfToday)!
    
     if startTime <= now && now <= endTime {
        print("between 10 AM and 6:00 PM")
        timeExist = true
     } else {
        print("not between 10 AM and 6:00 PM")
        timeExist = false
     }
       return timeExist
    }
    
    0 讨论(0)
  • 2020-12-10 00:17

    This is what did it for me:

    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:[NSDate date]];
    NSInteger currentHour = [components hour];
    NSInteger currentMinutes = [components minute];
    NSInteger currentSeconds = [components second];
    NSInteger day = [[NSDate date] dayOfTheWeek];
    
    if (((currentHour > openHours) && (currentHour < closeHours)) ||
        ((currentHour == openHours) && (currentMinutes >= openMinutes)) ||
        ((currentHour == closeHours)&&(currentMinutes<=closeMinutes))) {
    
        //..do something
    
    }
    
    0 讨论(0)
提交回复
热议问题