gpt4 book ai didi

java - 有条件生成两次范围内的随机时间

转载 作者:行者123 更新时间:2023-12-01 20:04:46 24 4
gpt4 key购买 nike

我试图在两次范围内生成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);
}

我将其放入 for 循环中以获取其中的 10 个

最佳答案

为了实现良好的随机分配:从 10:00 开始到 17:00 结束之间的 7 个小时(按照 24 小时制,“军令时间”),已经为您预留了 4 小时 30 分钟。最小间隙(最少 30 分钟 9 个间隙)。因此,从 7 中减去 4:30,得到 2 小时 30 分钟的自由时间。

  1. 按照您已经执行的方式,在 2 小时 30 分钟内生成 10 个随机时间。
  2. 按时间顺序对它们进行排序。
  3. 第一次添加 0 分钟,下一次添加 30 分钟,第三次添加 1 小时,依此类推。因此,您将在最后一次添加 4 小时 30 分钟。这将确保每个间隔至少为 30 分钟,并且最后时间仍在 17:00 结束时间之内。

关于java - 有条件生成两次范围内的随机时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58717886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com