OREFOLDER

5分進んだ時計ウィジェットの作り方(Glaeja・Zooper編)

Apple Watchが発売されましたね。私のTwitterのタイムラインも(いろんな意味で)盛り上がってました。
で、リツイート回ってきた中に「Apple Watchは時計を5分進めることができる、ただしアラームなどは元の正確な時間で鳴る」というのがありました。

元のツイートがどれだかわからなくなってしまいましたが、この記事で言ってる機能です。

へー。

  • 本記事は広告およびアフィリエイトプログラムによる収益を得ています。

Androidでやってみよう!

Android Wearじゃないです。Android Wear用のアプリで、普通のウィジェットをウォッチフェイスにできるものもありますが、面倒なので今回は普通にウィジェットです。

つまり、GlaejaとZooper Widgetで「5分進んだ時計」を作ろう、ということです。

Glaeja編

まずは普通に時計ウィジェットです。マルチラインテキストで$HH$\n$mm$を表示しているだけですね。

Glaejaで時間の計算といえば「caladd」です。

$yyyyMMddHHmm$@p@5@p@caladd@x@.0@P@

これを入力すると「201504242054」のように5分後の時間が表示されます。

ここから「時」と「分」を取り出してもいいのですが、ちょっと面倒そうです。なので基準日をずらす「calset」を使います。

$yyyyMMddHHmm$@p@5@p@caladd@x@calset@x@$HH:mm$

「$yyyyMMddHHmm$@p@5@p@caladd@x@calset@x@」までで、基準日を現在時刻から5分進めたものにしています。そうするとその後の記述は全部5分進んだ世界のものになります。なので普通に$HH:mm$と入力すると5分後の時刻が表示されます。

あとは表示を整えて完成です。右上の、端末自体の時計とGlaejaで描画した時計が5分ズレているのが確認できると思います。もちろん、時のくりあがりにも対応していますよ。

Zooper Widget編

Zooperは簡単に計算できるから簡単ですね!と思って$(#Dmm#+5)$なんてやると20時62分とかになってしまいます。計算はあくまで数値としてしか見てくれません。

時刻の計算は#Dmm#のDの次に分単位でプラスマイナスを付けることで基準日を調整します。#D+5mm#で5分後です。+5のあとは好きに書いて大丈夫です。1時間後は#D+60HH:mm#とかですね。

そのまま改行させると、こんな無残な格好に…。あいかわらずZooperは文字間とか行間とか、そういうところに弱いです。

シカたないので、コピーして「時」と「分」と2つのレイヤーに分けました。これで解決です。

まとめ

5分進んだ時計、どちらでもわりと簡単にできます。簡単さで言えばZooperのほうが簡単ですね。

もちろん、今回のを応用すれば時差のある地域の時計を同時に表示する、なんていうこともできます。ストックホルムなら時差7時間なので、7時間減らしてあげればOKです。

モバイルバージョンを終了