いくつかの一般的なコードを除外するための一般的なパターンを探しています。異なる算術演算で異なるプロパティを持つクラス間で代数の加算と減算を実装する必要があります。古典的なケースの 1 つは、秒、時間、分で表現できる間隔であり、3 つの int プロパティを持つクラスで実装しました。
たとえば、0 秒 0 分 1 時間の期間から 0 秒 30 分 0 時間の期間を減算したい場合、0 秒 30 分 1 の期間を取得したくありません。時間。
2 つの時間間隔の間で加算と減算をコーディングする必要がありますが、この代数をコーディングする一般的なパターンはありますか? 別の表現を探すべきですか?
アップデート
私のユースケースは通常、年、月、日、およびそれらの組み合わせで表される期間に適用されるため、質問を単純化しすぎました。問題は、ユーザーが日、月、年の観点から考え、正確な変換ができないことです (1 か月は何日ですか? まあ、それはさまざまです)。
したがって、ユーザーは 6M 3 日で何かを計算したいことを知っており、計算が行われると、その間隔を基準日に適用し、正しい結果を取得します。6M 3D を合計日数で変換する方法はありません。これは、選択した基準日によって異なり、時間の経過とともに変化するためです。