KWGTでTajmみたいな「◯時まであと×分」「△時から□分経過」という時計表示を作る

|

Tajm』という時刻をテキストで表示する時計ウィジェットがありました。ただ、2018年2月8日現在Playストアからは削除されているようです。

この時計の表示するテキストは日本語訳すると「◯時まであと×分」「△時から□分経過」というような表示でした。日本ではあまり馴染みのない形式ですが表示としては気に入っていたので、KWGTを使って作ってみました。もちろんKLWPでも同じように使えます。

完成形と概要

上にあるのがKWGTで作ったもので、下が本物のTajmです。かなりそっくりに作ることができました。KWGTで作っているので、当然フォントやサイズは自由自在です。

今回作ったものは以下のようなルールで表示されます。

  • 各時間帯において2分から14分、16分から29分までは「**minutes past ** AM/PM」
  • 31分から44分、46分から59分までは「**minutes to ** AM/PM」
  • 1分の場合は「**minute past ** AM/PM」(minuteと、sの付かない単数)
  • 15分、45分はquater表示でそれぞれpastとto
  • 30分は「half past ** AM/PM」
  • 0分は「** AM/PM」

表示を見るだけなら分かりやすいのですが、実際にこれを場合分けしたりするとなかなか面倒に感じます。

構成

今回のウィジェットは上図のように5つのパーツでできています。まず「グループ化(並べる)」を配置し、その中に「1」「2+3」「4+5」の3つを縦に並べます。

3つの段それぞれ「グループ化(並べる)」で並べています。上段は1つのテキストのみですが、それでも「グループ化(並べる)」に入れています。

上段

上段の分表示の部分は1つのテキストで作成しています。「加工」で「大文字」「数字をアルファベットに」にチェックを入れています。「大文字」は好みでしかありません。

テキストの内容は以下のとおりです。
$if(df(m)=0, "", df(m)=15, quarter, df(m)=45, quarter, df(m)=30, half, df(m)>30, tf(df(yyyy'y'MM'M'dd'd') + df(hh, a1h) + h01m, m), df(m))$

ifのところは|(OR)など使えばもっと短くなりそうですが、なんだか上手く行かなかったので。たぶんどこか変です。

また、上段は毎時0分のときは表示しないので、テキストを包むグループ化の「レイヤー」で「表示」を以下のようにコントロールしています。
$if(df(m)=0, REMOVE, ALWAYS)$

中段

中段左側

中段左側は

  • 毎時1分または59分のときは「minute」
  • 15分、30分、45分のときは「表示なし」
  • それ以外の時は「minutes」

となります。なのでテキストの内容は以下の通り。
$if(df(m)=1|59, minute + " ", df(m)%15!=0, minutes + " ")$

中段右側

中段右側は30分まではpast、31分からはtoなので単純です。
$if(df(m)>30, to, past)$

また、中段を包むグループ化も、毎時0分には非表示にするので、「レイヤー」の「表示」を上段と同じようにします。

下段

下段左側

下段左側は「30分まではその時の『時』、31分からは次の『時』」となります。

$if(df(m)>30, df(K, a1h), df(K))$

df(K)を使っているのは、KWGTの設定で24時間表示を基本としていても12時間表示で表示するためです。ただし、0時がZEROとなってしまいます。TajmだとTWELVEであり、これもやろうと思えばできるのですが、面倒だしZEROでもいいかな、と放置しています。

下段右側

下段左側は「30分まではその時の、31分からは次の午前午後表記」となります。ただこれにdf(A)を使うと、日本語環境で「午前/午後」になってしまいます。日本語ではなく英語でAM/PMを使いたいので、ifを使って無駄に長くします。
$if(df(m)>30, if(df(H, a1h)>11, PM, AM), if(df(H)>11, PM, AM))$

これで完成です。

別の方法もある

実はKWGT/KLWPは「$df(W)$」で「◯時まであと×分」「△時から□分」という表記ができます。ただこれはTajmのようなminuteやAM/PMが付きません。付かないでいいのならこっちのほうが簡単です。

フォントやサイズを別々にしたい場合も、「$df(W)$」をなんとか分解するなどすればできると思います。どっちが簡単かは…わかりません。

ダウンロード

一応今回のものもダウンロードできるようにしてみました。KWGTのProを持っていれば、ダウンロードしたtajm.kwgtファイルを端末のKUSTOM/widgetsフォルダに入れれば、読み込めると思います。

zooper-iconTajm
制作: orefolder
価格: 無料

ダウンロード

ぜひお試しください。

Random Posts

なんと、カルナさんなのです!【ホーム画面企画2016】
フォントで楽しむ天気予報 (天気ウィジェット):日本語テキスト表示の天気ウィジェット
Xiaomi Mi Band 3 開封の儀:0.78インチ有機ELディスプレイ搭載のスマートバンド
3万円台で買えるXiaomiのハイスペックスマートフォン「Mi 5s」を数日間使ってみてのレビュー
ドロイド君が新緑に紛れ込んだシンプルホーム【ホーム画面定期コンテスト】
第7回ホーム画面カスタマイズ定期コンテスト 投票開始のお知らせ
Custom Search Bar Widget CSBW:自分で配色をカスタマイズできる検索ウィジェット
Elephone P9000レビュー その1:上品な佇まいの狭額ディスプレイと3in1のタッチボタンがポイント
格安SIM (MVNO) 速度比較 : 2017年1月その1 2017年最初の測定もLINEモバイルの独走が続く
3万円台で手に入る超音波式指紋センサー & Snapdragon 821搭載スマートフォン「Mi 5s」の開封の儀とファーストインプレッション
Xperia XZの指紋認証ロック解除はストレスフリー! ごく自然な画面点灯→ロック解除
マルチペアリングで利便性はAirPods並!? AUKEYのBluetooth防水イヤホン「EP-B40」レビュー
MIKU complex【ホーム画面定期コンテスト】
天動説【ホーム画面コンテスト2017】
Music Player – Audio Beats:シンプルにスタイリッシュな音楽プレーヤーアプリ