2013-01-16 63 views
0

我需要一個Timetable類,將工作像(一個粗略的例子來解釋這個想法):Java中的時間表實現?

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

不能真正理解的目的是什麼,但它似乎像[joda-time.sf.net(HTTP理想的食譜://喬達-time.sf.net)在行動。 –

+0

您是否檢查過[this](http://code.google.com/p/unimaner/)?那裏肯定有一些有用的課程。 – m0skit0

+0

爲了確保我理解你的需要,我猜如果「新Date()」返回「星期五16:00」,eta將設置爲「星期一,10:00」? –

回答

-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()); 
+0

這個對'Calendar'類的基本功能的解釋是如何與所問的問題相關的?我需要一個時間表機制。 – yegor256