我正在寻找一种通用模式来分解一些常见代码:我需要在具有不同属性和不同算术的类之间实现代数加法和减法。一个经典案例是可以用秒、小时和分钟表示的间隔,我用一个具有三个 int 属性的类来实现它。
例如,如果我想将 0 秒、0 分钟和 1 小时的周期减去 0 秒、30 分钟、0 小时的周期,我不想获得 0 秒、-30 分钟和 1 的周期小时。
我需要在两个时间间隔之间编码加减法,是否有任何通用模式来编码这个代数?我应该寻找不同的代表吗?
更新
我过度简化了这个问题,因为我的用例通常适用于以年、月、日和它们的组合表示的时间段。困难在于用户根据天、月、年进行思考,并且不可能进行精确的转换(一个月有多少天?嗯......这会有所不同)
所以用户知道他想在 6M 3 天内计算一些东西,当计算发生时,我会将该间隔应用于参考日期,得到正确的结果。我无法在总天数内转换 6M 3D,因为这取决于您选择的参考日期,并且会随着时间的推移而变化。