Java中的时间表实现?

时间:2013-01-16 20:23:31

标签: java

我需要一个类似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之间的时间。这可能听起来像一个面试问题,但我需要这样一个类用于商业目的,我怀疑已经存在一些开源实现。

1 个答案:

答案 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());