java-在特定范围内生成随机LocalTime
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-在特定范围内生成随机LocalTime,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1399字,纯文字阅读大概需要2分钟。
内容图文
![java-在特定范围内生成随机LocalTime](/upload/InfoBanner/zyjiaocheng/686/3a0dced58f2a40acaddd3d456e5b9ab4.jpg)
我有两个LocalTime对象:
LocalTime time1 = LocalTime.of(8, 0, 0);
LocalTime time2 = LocalTime.of(15, 0, 0);
我想在这两个对象之间生成一个随机的LocalTime对象.
我已经尝试使用rand.nexInt()
Random rand = new Random();
int hours = rand.nextInt((time2.getHour() - time1.getHour()) + 1) + time1.getHour();
int minutes = rand.nextInt((time2.getMinute() - time1.getMinute()) + 1) + time1.getMinute();
int seconds = rand.nextInt((time2.getSecond() - time1.getSecond()) + 1) + time1.getSecond();
LocalTime random = LocalTime.of(hours,minutes,seconds);
但只会产生9:00:00之类的完整时间.
解决方法:
首先检查time2在time1之后.
然后,您可以将LocalTime实例转换为代表一天中秒数的long(LocalTime.toSecondOfDay()方法执行该操作),然后在两个LocalTime实例中的秒数之间选择一个随机数,并使用LocalTime .ofSecondOfDay()创建随机的LocalTime.
LocalTime time1 = LocalTime.of(8, 0, 0);
LocalTime time2 = LocalTime.of(15, 0, 0);
int secondOfDayTime1 = time1.toSecondOfDay();
int secondOfDayTime2 = time2.toSecondOfDay();
Random random = new Random();
int randomSecondOfDay = secondOfDayTime1 + random.nextInt(secondOfDayTime2-secondOfDayTime1);
LocalTime randomLocalTime = LocalTime.ofSecondOfDay(randomSecondOfDay);
请注意,在Random.next(int bound)中,绑定值是唯一的.因此,如果有关系,您应该增加一秒钟的时间以将最后一个值包括在可能的范围内,例如:
int randomSecondOfDay =
secondOfDayTime1 + random.nextInt(secondOfDayTime2-secondOfDayTime1 + 1);
内容总结
以上是互联网集市为您收集整理的java-在特定范围内生成随机LocalTime全部内容,希望文章能够帮你解决java-在特定范围内生成随机LocalTime所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。