Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取两次之间的时间列表_Java - Fatal编程技术网

Java 获取两次之间的时间列表

Java 获取两次之间的时间列表,java,Java,我有一系列有开始和结束的时间,它们都是java.sql.Timeobjects`。我想用它们之间的时间列表填充JComboBox,间隔为15分钟。例如,如果开始是11:00,结束是12:00,我希望JComboBox中的选项是11:00、11:15、11:30、11:45和12:00 最有效的方法是什么 在你的问题上有点扭曲:列出一个包含所有整数的列表,间隔为5个整数,介于2个整数之间: 首先,我们可以知道将有多少个号码,并相应地分配列表: (全部为psuedo代码) //假设开始和结束在间隔的

我有一系列有开始和结束的时间,它们都是
java.sql.Time
objects`。我想用它们之间的时间列表填充JComboBox,间隔为15分钟。例如,如果开始是11:00,结束是12:00,我希望JComboBox中的选项是11:00、11:15、11:30、11:45和12:00


最有效的方法是什么

在你的问题上有点扭曲:列出一个包含所有整数的列表,间隔为5个整数,介于2个整数之间:

首先,我们可以知道将有多少个号码,并相应地分配列表: (全部为psuedo代码)

//假设开始和结束在间隔的边界处。
int noOfElement=(开始-结束)/5+1;
列表结果列表=新的ArrayList(noOfElement);
然后填充列表中的值:

for (int i = begin; i <= end ; i += 5) {
  resultList.add(i);
}

for(int i=begin;i在你的问题上有点扭曲:制作一个列表,包含2个整数之间的5个间隔内的所有整数:

首先,我们可以知道将有多少个号码,并相应地分配列表: (全部为psuedo代码)

//假设开始和结束在间隔的边界处。
int noOfElement=(开始-结束)/5+1;
列表结果列表=新的ArrayList(noOfElement);
然后填充列表中的值:

for (int i = begin; i <= end ; i += 5) {
  resultList.add(i);
}

for(int i=begin;i
java.sql.Time
扩展自
java.util.Date
,因此您可以在接受
Date
的其他类中使用它

在这里,我使用了
日历
以15分钟的间隔简单地修改miniute字段,直到达到所需的结束时间

List<java.sql.Time> intervals = new ArrayList<>(25);
// These constructors are deprecated and are used only for example
java.sql.Time startTime = new java.sql.Time(11, 0, 0);
java.sql.Time endTime = new java.sql.Time(12, 0, 0);

intervals.add(startTime);

Calendar cal = Calendar.getInstance();
cal.setTime(startTime);
while (cal.getTime().before(endTime)) {
    cal.add(Calendar.MINUTE, 15);
    intervals.add(new java.sql.Time(cal.getTimeInMillis()));
}

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
for (java.sql.Time time : intervals) {
    System.out.println(sdf.format(time));
}

java.sql.Time
扩展自
java.util.Date
,因此您可以在接受
Date
的其他类中使用它

在这里,我使用了
日历
以15分钟的间隔简单地修改miniute字段,直到达到所需的结束时间

List<java.sql.Time> intervals = new ArrayList<>(25);
// These constructors are deprecated and are used only for example
java.sql.Time startTime = new java.sql.Time(11, 0, 0);
java.sql.Time endTime = new java.sql.Time(12, 0, 0);

intervals.add(startTime);

Calendar cal = Calendar.getInstance();
cal.setTime(startTime);
while (cal.getTime().before(endTime)) {
    cal.add(Calendar.MINUTE, 15);
    intervals.add(new java.sql.Time(cal.getTimeInMillis()));
}

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
for (java.sql.Time time : intervals) {
    System.out.println(sdf.format(time));
}

再看看joda时间的周期和持续时间。这使得在一个时间戳上加上15分钟变得很简单。@MichaelDeardeuff我宁愿加一个长的,然后加上(15*60*1000)来获得下一次。在这种情况下,它看起来很简单,可读性也很好:)再看看joda时间的周期和持续时间。这使得在一个时间戳上加上,比如说,15分钟变得很简单。@Michaeldearduff我宁愿加一个长的,然后加上(15*60*1000)来获得下一次。在这种情况下,它看起来很简单,可读性也很好:)我不知道这是不是最有效的方法,但我会做一个JComboBox数组,在每个元素中,我都有一个“时间”。你怎么看?2018年评论:今天你更喜欢使用现代的
LocalTime
类,而不是过时且设计拙劣的
java.sql.Time
。我不知道这是否是最有效的方法,但我会做一个JComboBox数组,在每个元素中我都有一个“时间”。您认为呢?2018评论:今天您更喜欢使用现代的
LocalTime
类,而不是过时且设计拙劣的
java.sql.Time