我正在寻找一种通用模式来提取一些通用代码:我需要在具有不同属性和不同算术的类之间实现代数加法和减法。一个经典案例是一个可以用秒、小时和分钟表示的间隔,我用一个具有三个 int 属性的类实现了它。
比如我想用0秒0分1小时减去0秒30分钟0小时,我不想得到0秒的周期,-30分钟,1 小时。
我需要对两个时间间隔之间的加法和减法进行编码,是否有任何共同的模式来编码这个代数?我应该寻找不同的代表吗?
更新
我把问题简单化了,因为我的用例通常适用于以年、月、日及其组合表示的时间段。困难在于用户以日、月、年的形式思考,并且不可能进行精确的转换(一个月有多少天?好吧……因人而异)
所以用户知道他想在 6M 3 天内计算一些东西,当计算开始时,我会将该时间间隔应用于引用日期,以获得正确的结果。我无法在总共几天内转换 6M 3D,因为这取决于您选择的引用日期,并且会随时间变化。
最佳答案
对于这个特定的用例,您可能想看看 scala-time
这是其自述文件的摘录,显示了您可以使用的语法:
(2.hours + 45.minutes + 10.seconds).millis
returns Long = 9910000
关于java - 在 Java 中用模 X 实现算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16768006/