前々回の記事では、World Timepieceでサーバーから日本時間を取得するところまで対応しました。
今回は、なんとか夏時間の判定を実装してみました。
夏時間が制定されている月のうち、夏時間が始まる月で夏時間が始まる週・曜日よりあとで、
かつ夏時間が始まる時刻よりも後で…みたいに、あらゆる時間帯に起動することを想定して
例によって汚いソースコードをつらつらと書いてみたわけですが、
なんとか夏時間の期間中か判定するまではうまくいっている模様。
ただし、まだ今日の日付でしか確認していないので
夏時間が始まる(或いは終わる)瞬間がどうなるかはまだ試していません。
そして、ここで別の問題が。
サーバーから日本時間を取得するのに時間がかかってしまう!
回線速度が原因なのか、ソフト側が原因なのか分かりませんが、
どちらにせよ、時刻の取得に時間がかかったら時計アプリとして致命的ですよね。
毎分0秒になったら自動で時刻合わせを行うのですが、
↑こんな感じで、0秒のまま数秒固まってしまい
やっと1秒になったと思ったら実際の秒数はもう7秒。6秒も遅れてしまっています。
これはタイムアウト機能をつけて、自動でオフラインモードに切り替えるようにしたほうが良さそうです。
もともとウィンドウタイマーが備わっているのでタイムアウトの実装は簡単だと思います。
(追記)
・・・と思ったら、なんとオフラインモードでも数秒固まってしまう。
どうやら時刻の取得に時間がかかっているわけではないようです。
コンテスト応募締め切りまであと2週間をきりました。急がねば。
Leave a Reply