日付の計算でちょっとつまづいた。

1月と10月を比較するときに、01とならないので、単純に計算させると、とてつもないことになってしまった。

計算するのにはコレが必要だった。

long n = now.getTimeInMillis()-cal.getTimeInMillis();

 

(1年以内に満期日が訪れるものを表示させるサンプル)

String Y=schedule.getDate_y();
String M=schedule.getDate_m();
String D=schedule.getDate_d();
int Yea = Integer.parseInt(Y);
int Ma = Integer.parseInt(M);
int Da = Integer.parseInt(D);

Calendar cal = Calendar.getInstance();//満期日
cal.set(Yea,Ma,Da,0,0,0);//日付セット
cal.add(Calendar.YEAR, -1);//1年前

Calendar now = Calendar.getInstance();//本日
int y = now.get( Calendar.YEAR );
int m = now.get( Calendar.MONTH ); //Calendarクラスでは1月が0なので+1する。
int d = now.get( Calendar.DATE );
now.set(y,m,d,0,0,0);//日付セット
now.add(Calendar.YEAR, 1);//1年後

long n = now.getTimeInMillis()-cal.getTimeInMillis();

if(n>0){

ListItem item = new ListItem();
System.out.println(“term”+schedule.getTerm());
String keiyaku;//契約日がブランクだったらブランク表示
if(schedule.getTimef() != null){
keiyaku=schedule.getTimef();
}else {
keiyaku=””;
}