2016-11-10 15 views
-2

私はJavaを開始しており、クラスmyDateを作成するよう依頼されています。そのようなクラスには、年、月、日のフィールドがあります。日付フィールドのJavaゲッターとセッター

setDate(long timeElapsed) 

私は次の操作を行うことができることを知っている:私はから「長いtimeElapsed」パラメータを計算するにはどうすればよい

Date tempDate = new Date(); 
long lngDate = tempDate.getTime(); 
System.out.println("lngDate: " + lngDate); 

私は日付を設定するには、次の構文を使用する必要があります年、月、日が与えられていますか?

GregorianCalendar cal = new GregorianCalendar(year, month, day); 
System.out.println("Year: " + cal.YEAR); 
System.out.println("Month: " + cal.MONTH); 
System.out.println("Day: " + cal.DAY_OF_MONTH); 

しかし、私が得る結果は以下の通りです:

Year: 1 
Month: 2 
Day: 5 

がどのように使用することができます

今、私はそのために私は次のように行われている、日付を表示するためのGregorianCalendarを使用する必要がありますMyDateクラスに日付を表​​示するGregorianCalendar?私はこの問題をしばらく成功させずに取り組んできました。

フィードバックに感謝いたします。

謹んで、
ホルヘ・マルドナド

+1

しかし、timeElapsedは、指定されたタイムゾーン以外の意味を持ちません。 –

+0

あなたの質問は非常に混乱しています。 「年月日」はどこから来ますか?今日の日付と別の日付との間の経過時間を計算する方法を尋ねていますか?もしそうなら、これは既に何度も処理されているので、Stack Overflowを検索してください。また、厄介な古いleacyクラスをjava.timeクラスに置き換えて使用しています。 –

答えて

0

ただ長いカレンダーから日付などを取得するには、次のメソッドを呼び出します。ここでは

cal.getTimeInMillis() 

は、対応するクラスです:

public class MyDate { 

    public void setDate(long timeElapsed) { 
    final GregorianCalendar cal = new GregorianCalendar(); 
    cal.setTime(new Date(timeElapsed)); 

    this.year = cal.get(Calendar.YEAR); 
    this.month = cal.get(Calendar.MONTH); 
    this.day = cal.get(Calendar.DAY_OF_MONTH); 
    } 

    public long getLong() { 
    final GregorianCalendar cal = new GregorianCalendar(this.year, this.month, this.day); 
    return cal.getTimeInMillis(); 
    } 

    private int year, month, day; 
} 
0

Calendar.YEAR、MONTH、DAY_OF_THE_MONTHはget()メソッドで使用する定数です。 so

System.out.println("Year: " + cal.get(Calendar.YEAR)); 
System.out.println("Month: " + cal.get(Calendar.MONTH)); 
System.out.println("Day: " + cal.get(Calendar.DAY_OF_MONTH)); 

あなたが必要とするものはありますか?

ところで上に、あなたは時間の値を取得するには、新しい日付を作成する必要はありません。

long lngDate = System.currentTimeMillis(); 
System.out.println("lngDate: " + lngDate); 

値が同じです。新しい日付が作成されると、System.currentTimeMillis()

PSが使用されます。 cal.get(Calendar.MONTH)は月番号-1を返します。 1月は0月、2月は1月などです。