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
価格: 無料

ダウンロード

ぜひお試しください。

本記事に記載された内容は記事公開時点のものであり、必ずしも最新の情報とは限りません。記事をご覧いただく際には、最新の情報を確認するようお願いいたします。

OREFOLDERの最新情報をお届けします
author icon
orefolder

OREFOLDER編集長。
1979年静岡県清水市生まれ、現静岡市清水区在住。

様々な巡り合わせから、このサイト1本で生活してる氷河期世代の一人。ガジェットに限らず広く浅く様々なものに興味があります。

スマートフォンは2010年にXperia SO-01Bを買ったのが最初。同時にb-mobile U300で格安SIMも始めました。これまでに数百台のスマホを手にし、格安SIMも常時20種類以上契約しています。

⇨orefolderの記事一覧