オブジェクトはNSDate
、2012 年 9 月 4 日午後 10 時 CDT など、絶対的な日付と時刻を表します。NSDate
これは、特定の瞬間にイベントが実際に発生した場合には問題なく機能しますが、繰り返し発生するイベントを扱う場合は、はるかに面倒です。たとえば、私は現在、ビジネスの営業時間を保存するアプリに取り組んでいます。ほとんどのビジネスには週ごとのスケジュールがあります。つまり、日付に関係なく、平日ごとの時間を保存したいと考えています。
いくつかの解決策があります。曜日、時間、および分の属性を持つ追加のエンティティ (私は Core Data で作業しています)、Hours を作成し、そのように把握します。これは単純な表示には有効ですが、「ステータス」も追加します (「x までオープン」、「y 分でクローズ」、「z でオープン」など)。つまり、比較を行うオブジェクトを作成するかNSDate
、 current の曜日、時間、および分のプロパティを取得する必要がありますNSDate
。
もう 1 つのオプションは、 1 つNSDate
のビジネス (開店と閉店) ごとに 2 つの を格納し、実際の日付を無視して、曜日、時間、および分のプロパティのみを使用することです。私はこれを試しましたが、日付を比較できるようにするには、NSDate
オブジェクトを操作する必要があります。
これらは私が思いついた解決策です。どちらも多くの数学を必要とし、多数の ifs、buts、mayves を伴います。私がすべてを行うことができるある種の「NSTime」オブジェクトを単純に持つことは本当に簡単ですが、それは存在しません(ないようです)。
他の誰かが同じ問題を抱えていて、より良い解決策を見つけましたか?