勤務時間などの経過時間を切り捨て,切り上げする方法を解説します。
日時間隔型の項目 [日時間隔] の値を 30 分毎に切り捨てた時間を数値にするには,数値型の計算項目を用意し計算式を以下のようにします。
#整数(#数値([日時間隔])/1800)/2 |
#数値 で日時間隔の値を数値化すると,秒単位の値が返ります。例えば,1 時間は 3600 秒ですので 3600 が,1 時間 1 分なら 3660 が返ります。この秒数を時間単位とするには 1 時間の秒数である 3600 で割ることになりますが,ここでは 30 分単位で区切るために 1800 で割ります。1 時間 1 分は 3660/1800=2.03・・・ となります。さらにその結果を #整数 で整数化することで小数部分を切り捨てます。これで 2 となり,これは 30 分未満の分の値を切り捨てるのと同じ効果を生みます。このままでは 30 分の単位ですので 2 で割ることで時間の単位の数値とします。
時間を 15 分ごとに切り捨てるなら以下のようになります。
#整数(#数値([日時間隔])/ 900)/4 |
逆に切り上げる場合は以下のようにします。
30 分ごと | #切上げ(#数値([日時間隔])/1800,0,0)/2 |
15 分ごと | #切上げ(#数値([日時間隔])/900,0,0)/4 |
より細かく 30 秒ごとなどの場合も同じような手法で処理できます。
30 秒ごとに切り上げた分数 | #切上げ(#数値([日時間隔])/30,0,0)/2 |
15 秒ごとに切り捨てた分数 | #整数(#数値([日時間隔])/15)/4 |
以上の式はすべて数値型に変換していますが,これを日時間隔型とするには #日時間隔 を用います。
30 分ごとに切り捨てた時間数 | #日時間隔(#整数(#数値([日時間隔])/1800)/2,'時') |
15 秒ごとに切り上げた分数 | #日時間隔(#切上げ(#数値([日時間隔])/15,0,0)/4,'分') |