2012-05-01 75 views
2

我是使用Netbeans進行Java編程的新手。我已將jCalendar添加到我的GUI中以選擇日期。挑選日期和查找差異

我已經進入活動這條線 - jCalendar按鈕>「屬性更改」的代碼,

Date date=jcalendar1.getDate(); 

所以,我得到立即當它被更改的日期。我對嗎?

目的: 我想找到從上述日期的下午(中午12點)到NOW(當前日期和時間)的差值(以毫秒爲單位)。 有幾個程序顯示日期差異,但所有日期硬編碼和新手,我不知道如何將它取代的日期。 (還有我對日期和日曆對象感到困惑,不能理解它們之間的區別)。例如,從這裏一片:

http://www.java2s.com/Code/Java/Data-type/ReturnsaDatesetjusttoNoontotheclosestpossiblemillisecondoftheday.htm

if (day == null) day = new Date(); 
    cal.setTime(day); 
    cal.set(Calendar.HOUR_OF_DAY, 12); 
    cal.set(Calendar.MINUTE,  cal.getMinimum(Calendar.MINUTE)); 
    cal.set(Calendar.SECOND,  cal.getMinimum(Calendar.SECOND)); 
    cal.set(Calendar.MILLISECOND, cal.getMinimum(Calendar.MILLISECOND)); 
    return cal.getTime(); 

這一天是一個Date對象。鏈接到它的cal(一個日曆對象)如何輸入時間。如何首先定義cal對象?我怎樣才能將這個或其他任何東西用於我的程序。一塊帶有詳細註釋的代碼將更有幫助 謝謝!

回答

0

而不是使用:

Date day = new Date(); 

用途:

Calendar cal = Calendar.getInstance(); 
cal.set (...); 
Date date = new Date(cal.getTimeInMillis()); 

值得抽象這個東西出來的DateUtils類或類似的,具有類似如下:

public static Date create(int year, int month, int day, int hour, int minute, int second) { 
    return new Date(getTimeInMillis(year, month, day, hour, minute, second)); 
} 

public static long getTimeInMillis(int year, int month, int day, int hour, int minute, int second, int milliseconds) { 
    Calendar cal = Calendar.getInstance(); 

    cal.clear(); 
    cal.set(year, month, day, hour, minute, second); 
    cal.set(Calendar.MILLISECOND, milliseconds); 

    return cal.getTimeInMillis(); 
} 
+0

感謝,我必須從GUI中取出日期,我可以使用calendar.getInstance();爲此而不是Date date = jcalendar1.getDate();正如我的問題所述。 –

+0

jcalendar API -http://www.toedter.com/en/jcalendar/api/com/toedter/calendar/JCalendar.html - 表示將從getDate()方法返回java.util.Date對象。 java.util.Date上的getTime()方法以毫秒爲單位給出了該日期的表示形式。在我的響應中使用該代碼來獲取GUI和今天中午之間的差異。 – PaddyC

+0

對不起,我在這裏沒有太多評論,我打了一個快速輸入,但我的評論上面回答你的問題? – PaddyC