KLWP/KWGTで日付や時刻を縦書きの漢数字で表示する

|

KLWPやKWGTは基本的に英語圏のアプリなので、日本の漢数字や縦書きに対応しているわけではありません。ですがちょっとした工夫で漢数字にしたり縦書きを実現できます。

方法としてはいくつもありますが、現時点で私がやるなら…というものを1つ解説していきます。

テキストを縦書きにする

テキストを縦書きで表示するのは簡単です。

テキストを以下のように設定します。

タイプ 幅を固定する
自由な値(サイズと同値もしくは僅かに大きい値)
最大行数 0
サイズ 自由な値(幅と同値もしくは僅かに小さい値)
揃え位置 中央

こうすると1文字ごとに改行されるので縦書きのように見えます。

ただしこれは日本語フォントでひらがな・カタカナ・漢字を表示するときです。英数字を表示すると幅が広くて2文字表示されてしまうことがあるかもしれません。テキストを1文字ごとにバラせばそういった心配はないのですが、面倒ですし、今回の日付時間くらいであればその心配もないと思います。

また今回は関係ありませんが、今回の方法で長音符「ー」や句読点を表示すると少しおかしくなります。単に改行してるだけですからね。そのときは縦書き用のフォントを使うといいかもしれません。

日付を漢数字で表示

日付を漢数字で表示する場合のコードは以下のようになります。

$tc(split, "0#一#二#三#四#五#六#七#八#九#十#十一#十二", "#", df(M))$月$if(df(d)/10!=0, tc(split, " #十#二十#三十", "#", df(d)/10))$$if(df(d)%10!=0, tc(split, " #一#二#三#四#五#六#七#八#九", "#", df(d)%10))$日

これは「月」「日の十の位」「日の一の位」の3つに分けて考えます。

$tc(split, "0#一#二#三#四#五#六#七#八#九#十#十一#十二", "#", df(M))$月

月の漢数字での表示は簡単です。たんに$tc(split)$で月の数字$df(M)$を漢数字に置き換えています。

日の十の位

$if(df(d)/10!=0, tc(split, " #十#二十#三十", "#", df(d)/10))$

日の十の位は、まず$if(df(d)/10!=0)$で日付の数字を10で割った時の数字が0ではない…つまり数字が2桁以上の時という条件をつけます。(単純に$if(df(d)>9)$で良かったかも…)
2桁位以上のときは、日付の数字を10で割った数が十の位になるので、それを漢数字に変換します。

日の一の位

$if(df(d)%10!=0, tc(split, " #一#二#三#四#五#六#七#八#九", "#", df(d)%10))$日

一の位は日付の数字を10で割った時の余りです。それをそのまま漢数字に変換します。余りがゼロのとき(10日・20日・30日)は表示する必要ないのでその条件も加えます。

時間を漢数字で表示

時間の方も基本的には日付と同じ考えでできます。

$tc(split, "零#一#二#三#四#五#六#七#八#九#十#十一#十二", "#", df(K))$時$if(df(m)=0, 零)$$if(df(m)/10!=0, tc(split, " #十#二十#三十#四十#五十", "#", df(m)/10))$$if(df(m)%10!=0, tc(split, " #一#二#三#四#五#六#七#八#九", "#", df(m)%10))$分

日付のときと同じで「時」「分の十の位」「分の一の位」で考えます。

$tc(split, "零#一#二#三#四#五#六#七#八#九#十#十一#十二", "#", df(K))$時

今回は12時間表記としました。なんとなく漢字で二十三時というのもしっくり来ず、それよりは午後十一時としたほうが良いかな?と思ったので。
また、0時や0分の「0」については「零」としました。ここは「〇」に変えてもいいかもしれません。好みの問題ですね。

分の十の位

$if(df(m)=0, 零)$$if(df(m)/10!=0, tc(split, " #十#二十#三十#四十#五十", "#", df(m)/10))$

分の一の位

$if(df(m)%10!=0, tc(split, " #一#二#三#四#五#六#七#八#九", "#", df(m)%10))$分

まとめ:和風ホームもいいかもしれませんね

今回のネタは、ホーム画面コンテスト2020の13作品目、summiさん作成のホーム画面「北斎」で時刻も漢数字にしたいというコメントがあったので書いてみました。

縦書きの日付表示というとWindows Phoneのロック画面を思い出します。あれはあれで良かったですよね。和風のホーム画面も、やってみるとなかなか面白いかもしれませんよ。


KLWPの使い方についてはこちらのページにてまとめています。使い方に困ったときなど、こちらのページも参考にしてください。