java - 以 30 分钟(最近的半小时)增量舍入 :

标签 java datetime math routes

以 30 为增量舍入整数的最有效方法(在 Java 中)是什么。我的输出将是一个整数:

这是我的代码,它以整数形式返回分钟。

long different = endTime.getTime() - startTime.getTime();
int idiff = TimeUnit.MILLISECONDS.toMinutes(different) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(different));

现在我想四舍五入这个整数。例如:

Any number <= 30 = round up to 30:

Any number between 31 to 60 = round up to 60

Any number between 61 to 90 = round up to 90

Any number between 91 to 120 = round up to 120

Any number between 121 to 150 = round up to 150

最佳答案

比你想要的组少加一个,然后除以倍数。所以 30 次

((value + 29) / 30) * 30

这假设您希望 0 保持在 0,30 保持在 30...

关于java - 以 30 分钟(最近的半小时)增量舍入 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27082097/

相关文章:

java - 当选择一个值时,在 JComboBox 中仅显示一个值

c# - DateTime 到 LocalDate (NodaTime)

Android 转向检测数学

c# - 将 DateTime 与 SqlDateTime.MinValue 进行比较

php - MySQL 在任何 24 小时窗口内检查 X 条记录

javascript - 反转 Web 墨卡托方程以将像素转换为纬度经度

math - 如何在3D空间中找到移动目标的交点坐标?

java - 下载 ubuntu 14.04 中的所有软件包后无法初始化 opennms 数据库 postgres

java - 如何在ubuntu上运行java类?

java - Mapstruct:嵌套对象的自定义映射方法