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;ijava.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
。