これは私のコードで、簡単な質問があります
import java.util.*;
import java.io.*;
import type.lib.GlobalCredit;
import type.lib.CreditCard;
import java.text.SimpleDateFormat;
public class eCheck08A
{
public static void main(String[] args)
{
PrintStream out = System.out;
Scanner in = new Scanner(System.in);
GlobalCredit credit1 = new GlobalCredit().getRandom();
out.print("Enter report range in years ... ");
int range = in.nextInt();
out.println("Cards expiring before " + range + " year(s) from now: ");
SimpleDateFormat sf = new SimpleDateFormat("dd/MM/yyyy");
for (CreditCard cc : credit1)
{
Calendar c = Calendar.getInstance();
c.setTime(cc.getExpiryDate());
c.add(Calendar.YEAR, range);
Date newDate = c.getTime();
if (cc.getExpiryDate().compareTo(newDate) < range)
{
if(cc.getExpiryDate().compareTo(newDate) > range)
{
out.print("*");
}
out.print(cc.getNumber());
out.println("\t" + sf.format(cc.getExpiryDate()));
}
}
}
}
それがどのように見えるべきかの出力:
Enter report range in years ... 3
Cards expiring before 3 years from now:
561561-8 20/11/2015
045645-7 22/02/2017
456462-3 16/04/2013 *
546548-5 19/08/2016
現在の年は 2012 年 人は範囲として '3' を入力します。したがって、2012 年から 2015 年までの年には " * " が必要です。上記の出力のように、2013 には " * " があります。私のIFステートメントで何が間違っているのか教えていただけますか?