以分钟为时间间隔,分解一段时间,求不吝赐教!

David8631 2013-01-10 11:32:00
有一段时间: 7:00~18:00

以10分钟为间隔

需生成如下数据:

7:00,7:10,7:20,7:30……………………17:40,17:50,18:00


求JAVA实现方法
...全文
182 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
raistlic 2013-01-11
  • 打赏
  • 举报
回复


import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;


/**
 *
 * @date   11/01/2013
 */
public class TimeOutput {
  
  public static void main(String[] args) {
    
    System.out.println(new TimeOutput().from(7, 0).to(18, 0).minuteGap(10).output());
  }
  
  private static final DateFormat FORMAT = new SimpleDateFormat("HH:mm");
  private static final long MILLISEC_PER_MINUTE = 60 * 1000L;
  
  private final Calendar c = Calendar.getInstance();
  private int hourFrom, hourTo;
  private int minuteFrom, minuteTo;
  private int minuteGap;
  
  public List<String> output() {
    
    List<String> output = new ArrayList<String>();
    
    c.set(Calendar.HOUR_OF_DAY, hourFrom);
    c.set(Calendar.MINUTE, minuteFrom);
    long from = c.getTimeInMillis();
    
    c.set(Calendar.HOUR_OF_DAY, hourTo);
    c.set(Calendar.MINUTE, minuteTo);
    long to = c.getTimeInMillis();
    
    for(long gap = minuteGap * MILLISEC_PER_MINUTE; from <= to; from += gap)
      output.add(FORMAT.format(new Date(from)));
    
    return output;
  }
  
  public TimeOutput from(int hour, int minutes) {
    
    check(hour, minutes);
    
    this.hourFrom = hour;
    this.minuteFrom = minutes;
    return this;
  }
  
  public TimeOutput to(int hour, int minutes) {
    
    check(hour, minutes);
    
    this.hourTo = hour;
    this.minuteTo = minutes;
    return this;
  }
  
  public TimeOutput minuteGap(int gap) {
    
    if( gap <= 0 )
      throw new IllegalArgumentException("Invalid minute gap: " + gap);
    
    this.minuteGap = gap;
    return this;
  }
  
  private void check(int hour, int minutes) {
    
    if( hour < 0 || hour > 24 )
      throw new IllegalArgumentException("Invalid hour: " + hour);
    
    if( minutes < 0 || minutes > 59)
      throw new IllegalArgumentException("Invalid minutes: " + minutes);
  }
}
huntor 2013-01-11
  • 打赏
  • 举报
回复
import org.joda.time.LocalTime;

LocalTime start = new LocalTime(7,0,0);
LocalTime end = new LocalTime(18,0,0);
ArrayList<LocalTime> times = new ArrayList<>(72);
times.add(start);
for(LocalTime t = start.plusMinutes(10); t.isBefore(end); t = t.plusMinutes(10))
    times.add(t);
times.add(end);

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧