我想要一个餐馆应用程序,我想改进我的功能。我有餐厅打开和关闭时间 NSDate
格式。我想简单检查当前哪些餐馆是开放的。我的应用程序应该询问NSDate()
当前时间,并且应该检查打开和关闭时间。 If current Time <= Close Time & current Time >= Open Time
餐厅应打开。 If current Time >= Close Time and & currentTime <= Open Time
餐厅应关闭。
这种情况的最佳方法是什么? 我是否应该按照我的说法去找其他的陈述?
答案 0 :(得分:2)
是的,使用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
}
但是,上述代码并未涉及午夜或其他日历之后的关闭时间。