読者です 読者をやめる 読者になる 読者になる

パルカワ2

PerlとRubyとイチャラブ

時間

曜日限定のクエストがあったとする。

やる事は、以下の2つだとする。
1. 今日の曜日とクエストに設定された曜日を照らしあわせて、有効か確認する
2. 有効であれば、ユーザーのデータに今日の日付の00:00:00〜23:59:59まで設定してあげる。

問題は1と2で別々に日付を取得するとズレが発生することがある事である。

アクセスした瞬間、"2014-01-01 23:59:59 (日)"であったとして、クエストに設定されていたのも日曜だったとする。
その場合、1.では有効となる。

2. に移動してから、今日の日付を設定しようと今日の日付を取得したら、"2014-01-02 00:00:00 (月)"になっていたとして、それに気づかずデータを更新してしまうとかありそう。
そうすると日曜限定のクエストが、月曜の00:00:00〜23:59:59に設定されてしまう。

1と2で、同じ時間のオブジェクトを使いまわしたらいいだけだけど、いい感じにするのしっくり来てない。Scope::Containerとかで時間を持つとかかなぁ。