ここでは、最も古い日付と最新の日付を取得するための単純なJavaコードです。これを達成する他の多くの方法があります。あなたのコードで
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
public class CompareDates {
public static void main(String[] args){
List<Date> dates = new ArrayList<Date>();
Date date1 = new GregorianCalendar(2014, Calendar.FEBRUARY, 11).getTime();
Date date2 = new GregorianCalendar(2015, Calendar.MARCH, 2).getTime();
Date date3 = new GregorianCalendar(2016, Calendar.JANUARY, 4).getTime();
Date date4 = new GregorianCalendar(2017, Calendar.MARCH, 17).getTime();
Date date5 = new GregorianCalendar(2017, Calendar.FEBRUARY, 12).getTime();
Date date6 = new GregorianCalendar(2017, Calendar.JULY, 14).getTime();
dates.add(date1);
dates.add(date2);
dates.add(date3);
dates.add(date4);
dates.add(date5);
dates.add(date6);
Date minDate = dates.get(0);
Date maxDate = dates.get(0);
for(int i=1; i < dates.size(); i++){
if(dates.get(i).before(minDate)){
minDate = dates.get(i);
}
if(dates.get(i).after(maxDate)){
maxDate = dates.get(i);
}
}
System.out.println("Min date is ---"+minDate);
System.out.println("Max date is ---"+maxDate);
}
}
、あなたは同様の方法で比較を実行する日付APIのbeforeとafterを使用することができます。
LinkedHashMap<Integer, List<MyDTO>> myResults = myService.getResultData(myDTO);
for (Map.Entry results : myResults.entrySet()) {
List<MyDTO> myDTOList = (List<MyDTO>) results.getValue();
Date minDate, maxDate;
for(int i=0; i < myDTOList.size(); i++){
if(i == 0){
minDate = myDTOList.get(0).getMyDate();
maxDate = myDTOList.get(0).getMyDate();
}
if(myDTOList.get(i).before(minDate)){
minDate = dates.get(i);
}
if(myDTOList.get(i).after(maxDate)){
maxDate = dates.get(i);
}
}
System.out.println("Min date is ---"+minDate);
System.out.println("Max date is ---"+maxDate);
}
どのような問題がありますか?あなたはリストを反復する方法を知らないのですか?日付を比較するには? – shmosel
あなたのMyDTOオブジェクトモデルは何ですか?今までの最後の日付と最初の日付を取得するために何を試しましたか? – nullpointer
@ user7833845、日付ライブラリの前後で比較を行うことができますので、下記のサンプルコードを確認してください。 –