KLWPで週の始まりの曜日の変更に対応した週間カレンダーを作る

|

KLWPはアプリ内で「週の始まりの曜日」を自由に変更できます。これに対応した、当日を含む1週間の日付曜日を表示するカレンダーを作ってみます。

はっきり言って、自分のためだけに作るのであればまったく必要のないものです。配布するなどで不特定多数の人に使われるのであれば意味があるかもしれませんが…。

週の始まりの曜日

KLWPではその設定に「週の始まりの曜日」というものがあります。カレンダーアプリでよくある項目ですが、KLWPでは月曜日から日曜日までどの曜日でも選べます。

「週の始まりの曜日」がどこに影響するかと言うと、$df(e)$での表示です。これは「週の始まりの曜日」で指定した曜日を基準として、その曜日を1、前日を0、翌日を2と表示します。$df(f)$が月曜日を1として日曜日の7まで表示するのと似ています。

仮に「週の始まりの曜日」を水曜日とすると、$df(e)$と$df(f)$は以下の値を返します。

月曜日 火曜日 水曜日 木曜日 金曜日 土曜日 日曜日
df(f) 1 2 3 4 5 6 7
df(e) 6 0 1 2 3 4 5

週の始まりの曜日を表示する

KLWPでは、指定した週の始まりの曜日を表示するようなものはありません。ですがちょっとした式で表示する事はできます。

まず、以下の式があります。

$df(e, 1w)$

$df(e)$は先程も書いたとおり、当日の曜日を、指定した週の始まりの曜日を基準に数値化したものです。これを$df(e, 1w)$と日付を1wで指定します。1wというのは今週の1日目、つまり月曜日のことです。$df(e, 1w)$は、指定した週の始まりの曜日を基準に今週月曜日を数値化したものです。

これは週の始まりの曜日をどれに指定したかで以下のようになります。

週の始まり 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日 日曜日
df(e, 1w) 1 0 6 5 4 3 2

なので、これを使って

$tc(split, "火#月#日#土#金#木#水", "#", df(e, 1w))$

とでもすれば、指定した週の始まりの曜日を表示できます。

週間カレンダーを作る

これまでのことを理解して、それを使って週間カレンダーを作ります。左端が設定で指定した週の始まりの曜日になるようにします。

曜日部分

まず曜日部分は、先程と同じようにdf(e, 1w)で指定した週の始まりの曜日を数値化して、tc(split)でその数字をテキスト化します。場所ごとに少しずつ表示テキストをずらして上げればOKです。

日付部分

日付部分はちょっと複雑に見えますが、df(e)をもとに、やはりtc(split)で日付を割り当てていきます。わりと愚直にやってます。

こんなふうに、実際の表示がどうなるかのパターンを表にしてみると、法則などが見えてくるのではないでしょうか。

完成

ゴチャゴチャしたところをふっとばしますが、他に当日の日付部分を背景つけるなどして完成です。

ちゃんと、指定した曜日が先頭に来てますし、それを基準に、今日を含む7日間が表示されています。月をまたぐところも大丈夫です。

ダウンロード

一応、コンポーネントとしてダウンロードできるようにしておきます。

Google playWeeekly
Weeekly
制作: orefolder
価格: 無料

ダウンロード

まとめ

正直、自分でも頭がゴチャゴチャしています。そのわりにそれほど役に立つものでもないという…。一応、上の方法のほかにもまた違う考え方で同じような表示をすることもできます。方法は1つじゃないってことです。

まぁ、どうやればいいのか考えるのは面白いですね。


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

Random Posts

祝!orefolder.netは8周年を迎えました。プレゼント企画ですよ!
Pixel 3の夜景モード(Night Sight)が実装されたので試したら本当に凄かった
UMIDIGI A5 Proの詳細スペックがプレゼントキャンペーンとともに公開!5/21発売予定
Xperia X Performance 購入:見慣れぬメッセージに少しだけ戸惑う、少しだけ
文字拡大メモ:スライダーで文字の大きさをビヨンビヨン変えられるメモアプリ
格安SIM (MVNO) の速度測定:2018年10月 その1 楽天モバイルのau回線が始まったはずなのに存在感なし
AQUOS R compact SH-M06 開封の儀:小さいのはいいことだ
知ってた?通知領域の日付部分タップでアラーム設定画面へ直接行けるのが便利
満充電の前にストップしてくれるエコモード搭載USB充電ケーブル
使いやすく、ライムグリーン【ホーム画面定期コンテスト】
ARTIFITのQiワイヤレス充電器 レビュー:パッド型にもスタンド型にもなるのが便利!
SHARP AQUOS S2 レビュー その2:日本語対応はイマイチだがナビバー非表示など気の利いた機能も
Call Log Widget:電話の発着信履歴をリスト表示するウィジェット
第6回ホーム画面カスタマイズ定期コンテスト 投票結果発表! 1位は「snow_mt」
Musicana Music Player:グラデーションが美しい見た目の音楽プレイヤーアプリ