我需要一个类似Timetable
的课程(一个粗略的例子来解释这个想法):
Timetable timetable = new Timetable("Mon-Fri 8:00-17:00");
Date eta = timetable.increment(new Date(), 3, Calendar.HOURS);
eta
应该是时间点,比当前时间提前3小时,但只考虑8:00到17:00之间的时间。这可能听起来像一个面试问题,但我需要这样一个类用于商业目的,我怀疑已经存在一些开源实现。
答案 0 :(得分:-1)
我认为将字符串解析为日期非常接近,然后使用 java.util.Calendar 来添加或减去日期。
检查一下 http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html#add(int,int)
// create a calendar
Calendar cal = Calendar.getInstance()
// print current date
System.out.println("The current date is : " + cal.getTime());
// add 20 days to the calendar
cal.add(Calendar.DATE, 20);
System.out.println("20 days later: " + cal.getTime());
// subtract 2 months from the calendar
cal.add(Calendar.MONTH, -2);
System.out.println("2 months ago: " + cal.getTime());
// subtract 5 year from the calendar
cal.add(Calendar.YEAR, -5);
System.out.println("5 years ago: " + cal.getTime());