Project

General

Profile

機能 #7

Gem Questの時間を表示する

Added by mole lord almost 2 years ago. Updated almost 2 years ago.

Status:
終了
Priority:
通常
Assignee:
Start date:
12/30/2018
Due date:
% Done:

100%

Estimated time:

Description

Gem Questの5分前からQuestが終了するまで、Gem Questの開催がわかる表示をする。

#1

Updated by mole lord almost 2 years ago

  • Status changed from 新規 to 進行中
  • % Done changed from 0 to 10

開催がわかる表示をするのはやめて、右下の時計をマウスオーバしたときにGem Questのタイムテーブルが表示されるようにする。

ただし、他地域のローカルタイムでやっているイベントが自分のローカルタイムで何時になるかを求めるのは難しそう。夏時間と通常時間の切り替わりも考慮する必要がある。

#2

Updated by mole lord almost 2 years ago

  • Status changed from 進行中 to 終了
  • % Done changed from 10 to 100

コミット fe533cf で修正を済ませた。

アルゴリズムは以下の通り。

  1. 現在の時刻からInstant currentTimeを得る。
  2. currentTimeを15分刻みの時間に切り上げる。15分なのは、時差の最小単位が15分だから。
  3. currentTimeをゲームサービスのローカル時刻(nutakuならAmerica/Los_Angeles)に変換し、zoneTimeを得る。
  4. zoneTimeを15分ずつ増やし(一週間ぶん繰り返す)、ジェムクエストの時刻と一致するか調べる。
  5. 一致したら、zoneTimeをいちどInstant型に変換し、さらに自分のローカルタイム(ZoneId.systemDefault())に変換した後、ローカル時刻表に書き込む。
  6. ローカル時刻表を表示する。
#3

Updated by mole lord almost 2 years ago

タイムゾーン呪いの書 が参考になった。

Also available in: Atom PDF