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 時に閉店すると、実際には金曜日の午前 4 時に閉店することになります。

選択した店舗が開いているか閉じているかを判断する最も効果的な方法は何ですか?

4

2 に答える 2

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 に答える
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 に答える