我怎样才能用当前时间计算一些位置的打开和关闭时间
How can I calculate some location Open and Close Time with Current Time
我想要一个餐厅应用程序并且我想改进我的功能。我的餐厅 营业时间 格式为 NSDate
。我想简单地检查当前有哪些餐厅营业。我的应用程序应该询问 NSDate()
当前时间,并且应该检查打开和关闭时间。 If current Time <= Close Time & current Time >= Open Time
餐厅应该 营业 。 If current Time >= Close Time and & currentTime <= Open Time
餐厅应该关闭。
这种情况的最佳方法是什么?
我应该按照我说的去做 If else 语句吗?
是的,使用 if-else 语句(有条件的)是一种很好的方法。这就是我的处理方式(openTime
是开放时间,closedTime
是关闭时间):
// Set up calendar and unit flags
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
let timeUnitFlags: NSCalendarUnit = [.CalendarUnitHour, .CalendarUnitMinute]
// Retrieve components
let openComponents = calendar.components(timeUnitFlags, fromDate: openTime)
let closedComponents = calendar.components(timeUnitFlags, fromDate: closedTime)
let currentComponents = calendar.components(timeUnitFlags, fromDate: NSDate())
// Convert components into minutes into the day
let openMinutes = (openComponents.hour * 60) + openComponents.minute
let closedMinutes = (closedComponents.hour * 60) + closedComponents.minute
let currentMinutes = (currentComponents.hour * 60) + currentComponents.minute
// Check if open or closed
if currentMinutes >= openMinutes || currentMinutes <= closedMinutes {
// Open
} else {
// Closed
}
但是,上面的代码没有解决午夜或其他日历后的关闭时间。
我想要一个餐厅应用程序并且我想改进我的功能。我的餐厅 营业时间 格式为 NSDate
。我想简单地检查当前有哪些餐厅营业。我的应用程序应该询问 NSDate()
当前时间,并且应该检查打开和关闭时间。 If current Time <= Close Time & current Time >= Open Time
餐厅应该 营业 。 If current Time >= Close Time and & currentTime <= Open Time
餐厅应该关闭。
这种情况的最佳方法是什么? 我应该按照我说的去做 If else 语句吗?
是的,使用 if-else 语句(有条件的)是一种很好的方法。这就是我的处理方式(openTime
是开放时间,closedTime
是关闭时间):
// Set up calendar and unit flags
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
let timeUnitFlags: NSCalendarUnit = [.CalendarUnitHour, .CalendarUnitMinute]
// Retrieve components
let openComponents = calendar.components(timeUnitFlags, fromDate: openTime)
let closedComponents = calendar.components(timeUnitFlags, fromDate: closedTime)
let currentComponents = calendar.components(timeUnitFlags, fromDate: NSDate())
// Convert components into minutes into the day
let openMinutes = (openComponents.hour * 60) + openComponents.minute
let closedMinutes = (closedComponents.hour * 60) + closedComponents.minute
let currentMinutes = (currentComponents.hour * 60) + currentComponents.minute
// Check if open or closed
if currentMinutes >= openMinutes || currentMinutes <= closedMinutes {
// Open
} else {
// Closed
}
但是,上面的代码没有解决午夜或其他日历后的关闭时间。