2012-05-01 10 views
2

私はNetbeansを使用してJavaプログラミングの初心者です。 GUIをjCalendarに追加して日付を選択しました。私はイベントでこの行を入力した日付ピッキングと相違点

- 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 - java.util.DateオブジェクトがgetDate()メソッドから返されることを示します。 java.util.DateのgetTime()メソッドは、その日付をミリ秒で表します。私の応答のコードを使って、GUIと今日の正午の差をミリ秒単位で取得してください。 – PaddyC

+0

申し訳ありませんが、ここであまり頻繁にコメントしていないので、少し早く入力してください。 – PaddyC

関連する問題