OREFOLDER

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日間が表示されています。月をまたぐところも大丈夫です。

ダウンロード

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

Weeekly
制作: orefolder
価格: 無料

ダウンロード

まとめ

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

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


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

モバイルバージョンを終了