java - 在 Java 中用模 X 实现算术

标签 java scala math

我正在寻找一种通用模式来提取一些通用代码:我需要在具有不同属性和不同算术的类之间实现代数加法和减法。一个经典案例是一个可以用秒、小时和分钟表示的间隔,我用一个具有三个 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/

相关文章:

scala - Unresolved 依赖 org.scala-lang :scala3-library_3. 0.0 :3. 0

python - 计算存房押金所需月数的函数

java - 在 Java 与 Python 中将字节转换为整数

scala - akka-http 没有堆栈跟踪或错误详细信息

java - Hibernate 中的 ClassCastException

scala - 与 sbt 汇编的不及物依赖

math - 如何找到从车辆到目标的方位角/仰角?

python - 检查正定性或半正定性

java - 我可以把它放到一个for循环中吗?

java - 初始化二维java数组