Django 記録時刻を10分単位や15分単位で丸める

出退勤記録をつける際に、例えば8:12に出社したら、出勤時刻は8:15として、15分刻みで実働時間や時給計算するというのはよくあります。

逆に退勤時は、15:12に退勤したら、15:00と記録したいですね。

特に丸めずにそのまま記録して、集計時に丸めてもよいのですが、djangoだと集計時にいろいろ面倒なので、最初から丸めて記録しておくと良いかと思います。

主にformの機能を使ってDBに記録するので、記録する際にviews.pyのform_validをいじります。

以下は出勤時の例です。

 

退勤用のフォームを作る場合は、form_validで以下のようにします。

 

なお実際には、出勤した直後に(15分もたたずに)すぐ退勤した場合、上記の例だと出勤時刻と退勤時刻が逆転してしまいますので、もし丸めた退勤時刻が出勤時刻より早くなってしまったら出勤時刻と同じにするなどのイレギュラー処理が必要となります。

参考サイト)

https://www.it-swarm.dev/ja/python/%E6%97%A5%E6%99%82%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E5%88%86%E3%82%92%E4%B8%B8%E3%82%81%E3%82%8B%E6%96%B9%E6%B3%95python/969167474/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*