【要約】Python で作業時間を HH:MM 形式で足し算する [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が作業ログ等の時間文字列を計算する際、標準ライブラリのみでは実装が煩雑になる。具体的には以下の問題が発生する。
- ・
datetime.timedeltaは文字列を直接受け取れない。 - ・パース、秒変換、再フォーマットの処理を自前で実装する必要がある。
- ・負の値や、HH:MMとHH:MM:SSの混在への対応でコードが肥大化する。
// Approach
hmscalcライブラリを導入し、時間文字列の演算を抽象化する手法を採用する。主な解決策は以下の通りである。
- ・
HMSTimeクラスにより、文字列のまま加減算を可能にする。 - ・
sumやaverageなどの集計メソッドをクラスレベルで提供する。 - ・CLIツールを提供し、シェル環境からの直接利用を可能にする。
- ・
timedeltaとの相互変換をサポートし、既存資産との併用を可能にする。
// Result
時間計算に関するボイラープレートコードを削減し、開発効率を向上させる。具体的な成果は以下の通りである。
- ・ビジネスロジックへの集中が可能になり、コードが簡潔になる。
- ・HH:MMとHH:MM:SSの混在や空リストの集計も安全に処理できる。
- ・CLIにより、CIログの集計などの運用タスクも容易になる。
Senior Engineer Insight
> 時間計算のボイラープレートを排除する軽量な手段として、実戦投入の価値がある。特に、フォーマットの揺らぎを吸収する能力は、データクレンジングのコストを下げ、開発体験を向上させる。大規模システムでは、パース処理の堅牢性が重要となる。本ライブラリは、人間が読む文字列層を担い、計算基盤として
timedelta を併用する設計であり、既存の datetime 資産との親和性も高い。