カレンダーの日付範囲(Date型)
■ 現象の確認
カレンダーの日付範囲について気になる点を現象の確認から。データシートはこんな感じのものを用意。日付は全てDate型。
何も考えず作成すると出来上がるのがコレ。全部、日付範囲が1日足らんです・・・
カレンダービューは秒刻みのタイムスケジュールも組めるので、内部的にDate型をDatetime型に変換してるのではないか?そうすると9/12~9/14は9/12 0:00:00~9/14 0:00:00になり、図に書いてみると確かにこの通りになる。だけど当日範囲だけは正しく表示されてる・・・ちょい矛盾。
■ 対策
これはDate型だけを使っている場合の対策です。見た目が1日足りなければ1日足してやればよい。バーチャルカラム作成、内容は終了日+1だけ。この部分は編集時に表示しても意味が無いのでShowはOFF。
終了範囲を上記で作成したバーチャルカラムに置き換える。作業は以上。
当日の範囲も(何故か)大丈夫そう。とりあえず矛盾なし。
※ 9/12~9/14をDatetime型で試してみたところ、終了日の指定を9/14 0:00:00にすると9/13までの範囲になり、9/14 0:00:01にすると9/14までの範囲になりました。ちょっとでも次の日に食い込んでいればよい模様。
■ 補足
DayとWeekを表示した時のこの部分。Date型が指定されれば使われず、Datetime型が指定されれば使われる模様。Datetime型でも日を跨いでいるデータの場合は使われない模様。当日の時間範囲指定の場合だけ使われる模様。
以上。