Zooper勉強中:縦書きの日付表示

|

これまでもいくつかZooper Widgetの基本的なことを勉強してきました。
が、まぁやっぱり、とりあえず作ってみて、○○をやりたい→どうすればできるか?→どんな機能を使えばいいか?と試行錯誤してみるのが結局は理解が早いってもんです。

今度のコミケでも出す「Androidのホーム画面をカスタマイズする本2」では、Glaejaを使って、いろいろなテクニックというか、こういうときはこうすればいいよ的なものを書いたのですが、それと同じようなのをZopperでどうやって実現すればいいか、というのをやってみようと思います。
全部が全部できるわけではないでしょうけど、とりあえずできるか考えてみましょう。

まず今回は「日付を漢字にして縦書き表示」というのをやってみます。

幅を狭めて縦書きにする

131220-1
まず、普通に日付を表示すると、テキストモジュールで

#DM#月#Dd#日

これで12月20日などと表示されます。

これをリッチテキストで入力し、X マージンを大きく取っていくとそのうち1文字や2文字で行が折り返されるようになります。

これで縦書きっぽくなりました。

月の数字を漢数字にする

131220-2
次に月の数字を漢数字にします。

$#DM#=12?十二$

これで12月の時には「十二」と表示されます。その他の月の時はなにも表示されません。なので、これを十二ヶ月分作って

$#DM#=12?十二$$#DM#=11?十一$$#DM#=10?十$$#DM#=9?九$$#DM#=8?八$$#DM#=7?七$$#DM#=6?六$$#DM#=5?五$$#DM#=4?四$$#DM#=3?三$$#DM#=2?二$$#DM#=1?一$月

これで月の部分が漢数字に変換されます。「十二月」じゃなくて「師走」とかにしたければそれでもOKです。「壱」とかにしたければそうしてください。

日の数字を漢数字にする

日の数字を漢数字にするときも同じように31日分でやれば、それでOKです。
…とは言っても31個はさすがに辛いです。もうちょっと考えてみましょう。

十の位と一の位の2つに分けて考えてみましょう。
十の位は0から3の4通り、一の位は0から9の10通りしかありません。31個作るよりは楽そうです。

十の位を取り出して漢数字に

131220-3
では十の位を漢数字にしてみましょう。そのためには十の位だけ取り出さなければなりません。

$(floor(#Dd#/10))$

これで十の位だけを取り出せます。

「#Dd#/10」は日付を10で割っています。26日なら2.6となります。
floor(xxx)はxxxの値を切り捨てで整数化します。
なので、26日の時は$(floor(#Dd#/10))$は2と表示されます。あとは先ほどと同じように漢数字化します。

$(floor(#Dd#/10))=1?十$$(floor(#Dd#/10))=2?二十$$(floor(#Dd#/10))=3?三十$

floor(#Dd#/10)が0の時は何も表示されません。

一の位を取り出して漢数字に

131220-4
次に一の位だけを取り出して、同じように漢数字化します。

$(#Dd#%10)$

%は、その後の数字で割った時の余りを表示します。この場合は日付の数字を10で割った余りとなります。これが日付の一の位になります。

あとは同じように漢数字化してあげればOKです。

$(#Dd#%10)=1?一$$(#Dd#%10)=2?二$$(#Dd#%10)=3?三$$(#Dd#%10)=4?四$$(#Dd#%10)=5?五$$(#Dd#%10)=6?六$$(#Dd#%10)=7?七$$(#Dd#%10)=8?八$$(#Dd#%10)=9?九$日

完成

131220-5
ここまでのをまとめるとこんな感じです。長ぇ…。

$#DM#=12?十二$$#DM#=11?十一$$#DM#=10?十$$#DM#=9?九$$#DM#=8?八$$#DM#=7?七$$#DM#=6?六$$#DM#=5?五$$#DM#=4?四$$#DM#=3?三$$#DM#=2?二$$#DM#=1?一$月$(floor(#Dd#/10))=1?十$$(floor(#Dd#/10))=2?二十$$(floor(#Dd#/10))=3?三十$$(#Dd#%10)=1?一$$(#Dd#%10)=2?二$$(#Dd#%10)=3?三$$(#Dd#%10)=4?四$$(#Dd#%10)=5?五$$(#Dd#%10)=6?六$$(#Dd#%10)=7?七$$(#Dd#%10)=8?八$$(#Dd#%10)=9?九$日

131220-6
余計な改行を取り払い、フォントなど調整すれば完成です。

余談

本当はもっと他の例もたくさん出して1つの記事にするつもりでしたが、縦書きだけでそれなりの量になってしまったので(疲れたので)1つだけで出しちゃいます。
何が疲れるって、日本語入力の部分ですよね…。

Random Posts

KLWPで指定したカレンダーの予定のみを表示する方法
第1回ホーム画面カスタマイズ定期コンテスト 投票結果発表! 1位はドロイド君の新緑ホーム画面
snowflake【ホーム画面定期コンテスト】
見返り美人【ホーム画面定期コンテスト】
格安SIM (MVNO) 速度比較 : 2017年1月その1 2017年最初の測定もLINEモバイルの独走が続く
【アンケート企画】あなたのスマホの持ち方教えてください!2017【結果と考察編】
格安SIM (MVNO) 速度比較 : 2016年11月その2 LINEモバイルが止まらない!速い、速すぎるよ!
マルチペアリングで利便性はAirPods並!? AUKEYのBluetooth防水イヤホン「EP-B40」レビュー
Another Widget:ごくシンプルに日付や時間を表示するありきたりなウィジェット
必要なモノちょっとイイ感じ(?)に詰め込んだホーム画面【ホーム画面企画2016】
SIM CHANGER ⊿、着弾。 が、4回線のSIMを自在に操れず、かなり不安定で敗北、返品予定
G-Color Xperia XZ用 全面保護TPUフィルム レビュー:見た目は悪くないが指の滑りがかなり悪い
Digital Clock Simple:ちょっとレトロな感じもするシンプルな時計ウィジェット
ジョルテッシモ:縦長スマホで使いたい縦スクロール型のカレンダー・スケジュール帳アプリ
BlackBerry KEY2 レポート:BOWのアンチグレアタイプ画面保護フィルムは悪くないけど微妙