如何根据重复的每周小时来判断商店是否开放?

时间:2012-04-24 19:27:52

标签: iphone ios nsdate

我有一个iPhone应用程序,显示本地商店营业时间的信息,以及当前时间是否开放。我目前在plist中存储如下数据:

<dict>
    <key>sunday</key>
    <string>11:00-13:00</string>
    <key>monday</key>
    <string>11:00-18:00</string>
    <key>tuesday</key>
    <string>09:00-23:00</string>
    <key>wednesday</key>
    <string>12:00-24:00</string>
    <key>thursday</key>
    <string>13:00-04:00</string>
</dict>

如图所示,我正在使用24小时制。此外,有些日子一直营业到第二天,因此在星期四04:00结束意味着它实际上在星期五凌晨4点关闭。

确定所选商店是打开还是关闭的最有效方法是什么?

2 个答案:

答案 0 :(得分:0)

最好将时间存储为NSDates而不是字符串。然后你就可以做NSDate *now = [NSDate date]并说出类似:if (now > openTime && now < close time){store.open = YES} else {store.open = NO};

的内容

查看Apple's Date and Time Programming guide

答案 1 :(得分:0)

将开放日期保持为“0-11:00-open”,0-13:00-closed“,”1-11:00-open“,”1-18:00-closed“等。排序列表。在列表中查找当前日期/时间。检查相邻条目以查看是打开还是关闭。

如果您希望稍微更简单/更快的数字排序/比较,您可以将字符串缩减为简单数字(例如,011000,012001 ......)。

你必须在午夜时分(切换日#从2359切换到0000(不要使用2400))以及周六和周日之间要小心。

当然,进行“健全性检查”总是明智的 - 检查是否可以打开和关闭。