Vic*_*pes 4 java localtime java-8
我试图在两次范围内生成 10 个随机时间,并且有一个条件,即生成的时间之间不能少于 30 分钟。因此,如果我在上午 10:00 开始并在下午 05:00 结束,则它们之间的时间必须至少间隔 30 分钟。
我已经可以获得随机时间,但不知道如何将条件放在那里,有什么想法吗?
public LocalTime between(LocalTime startTime, LocalTime endTime) {
int startSeconds = startTime.toSecondOfDay();
int endSeconds = endTime.toSecondOfDay();
int randomTime = ThreadLocalRandom
.current()
.nextInt(startSeconds, endSeconds);
return LocalTime.ofSecondOfDay(randomTime);
}
Run Code Online (Sandbox Code Playgroud)
我把它放在一个 for 循环中以获得 10 个
为了获得良好的随机分布:在您从 10:00 开始到 17:00 结束之间的 7 小时(在 24 小时制,“军事时间”)中,4 小时 30 分钟已经预留给您的最小间隙( 9 个间隙@最少 30 分钟)。所以从 7 中减去 4:30,这给出了 2 小时 30 分钟的自由。
快乐编码。
| 归档时间: |
|
| 查看次数: |
697 次 |
| 最近记录: |