2016-05-20 7 views
0

私はlocaldateを2つ持っています.1つは生年月日で、もう1つは今日の日付です。 それらを比較して、年齢が18歳以上かどうかを確認する最も早い方法は何ですか?これを文字列に変換して分割し、1を1ずつ比較する必要がありますか?それとも、これを比較する別の方法がありますか?ここでJava LocalDate 18歳以上かどうかチェック

+1

https://docs.oracle.com/javase/tutorial/datetime/iso/period.html –

+0

はありがとうございました –

答えて

1
LocalDate today = LocalDate.now(); 
LocalDate birthday = LocalDate.of(1960, Month.JANUARY, 1); 

Period p = Period.between(birthday, today); 
long p2 = ChronoUnit.DAYS.between(birthday, today); 
System.out.println("You are " + p.getYears() + " years, " + p.getMonths() + 
       " months, and " + p.getDays() + 
       " days old. (" + p2 + " days total)"); 
0

long age = LocalDate.from(birthday)).until(LocalDate.now(), ChronoUnit.YEARS); 
2

のJava 8に組み込まれたjava.time枠組みを、それを行うためのワリー方法であり、後に問題を解決する方法のたくさんのクラスがあります。最高のものはPeriodです。 LocalDate.now():正確なコードは、ここで

period = Period.between(start, end); 

startは、このようなLocalDate.of(1955 , 1 , 2)endとしてあなたの誕生日が今日になるだろうされます。

その後、period.getYears()intの値を返します。あなたが望む条件を簡単にチェックできます。

Tutorialを参照してください。

参考:Java 8: Calculate difference between two LocalDateTimeLocalDate

関連する問題