7

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 Tomorrow morning 10AM to 12PM. How can I do this?

Rob
  • 415,655
  • 72
  • 787
  • 1,044
Dev
  • 3,885
  • 10
  • 39
  • 65

4 Answers4

17

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

Community
  • 1
  • 1
CRDave
  • 9,279
  • 5
  • 41
  • 59
7

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
}
Vikash Sinha
  • 869
  • 1
  • 7
  • 21
M Murteza
  • 1,629
  • 15
  • 10
2

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

}
thorb65
  • 2,696
  • 2
  • 27
  • 37
1

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")
}
NatashaTheRobot
  • 6,879
  • 4
  • 32
  • 27