0

我有一个 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 小时制。此外,有些日子会一直营业到第二天,因此周四凌晨 4:00 关闭意味着它实际上在周五凌晨 4 点关闭。

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

4

2 回答 2

0

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

如果您希望进行更简单/更快的数字排序/比较,可以将字符串简化为简单数字(例如,011000、012001...)。

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

当然,做一个“健全性检查”总是明智的——检查交替打开和关闭。

于 2012-04-24T19:51:51.813 回答
0

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

查看Apple 的日期和时间编程指南

于 2012-04-24T19:34:42.050 回答