チュートリアル

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

ドコモ、Galaxy S8 SC-02J / Galaxy S8+ SC-03JにAndroid 9 PieへのOSアップデートを配信開始
TaoTronics SoundLiberty 94 レビュー:1万円を切る価格でノイキャンと外音取り込み搭載の完全ワイヤレスイヤホン!
HUAWEI Honor Band 5 レビュー:血中酸素飽和度(SpO2)の測定もできるファーウェイの比較的安価なスマートバンド
Pixel 4(仮称)っぽい壁紙画像を作ってみました
Pixel 3a 購入!開封の儀とファーストインプレッション:意外とPixel 3と違いを感じる
mineoについて考える。月額割引、500kpsパケット放題、ゆずるね。その狙いはどこに?(追記あり)
ネビュラ・ブルー【あなたのホーム画面見せてください 2020】
LINEモバイルがMi Note 10を取り扱い開始!Android格安スマホ全メーカーSALEも開催!
ChatWiFi×orefolder.net 新春大特価キャンペーン!超大容量100GBが月額2,880円、300GBが月額3,680円!2020/3/31まで
Amazon純正 スマートプラグを購入:意外と使いみちは狭いかもしれない
Simple is Best【あなたのホーム画面見せてください 2020】
メインで使ってるスマホシェア、Androidが57.2%!メーカー別はソニーモバイルが18.4%【MMD研究所調査】
Geekbuying、CES2019合わせのセールを開催中!HUAWEI Mate 20 Proなど
J:COM、Galaxy Tab Aを11/28より販売開始!10.1インチでスリムベゼルなタブレット
モトローラ、お手ごろ価格のmoto g8 power liteとエントリークラスのmoto e6sを9月4日販売開始!