これは私のコードです:
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)
{
out.print(cc.getNumber());
out.println("\t" + sf.format(cc.getExpiryDate()));
}
}
}
最初に、私のアプリは範囲年を尋ねます。たとえば、「3」と入力します。範囲番号より下の年の日付の横に「*」を付けたいと思います。Java は、日付が今日の時点であると想定していると想定しているため、2012 年 7 月 23 日です。たとえば、2013 年 4 月 16 日を取得した場合、その横に「 * 」が必要です。しかし、2016 年 5 月 23 日を取得すると、「 * 」は表示されません。
編集:
Date endDate = new Date(2015, 12, 31);
for (CreditCard cc : credit1)
{
if (cc.getExpiryDate().compareTo(endDate) < 0)
{
if(cc.getExpiryDate().compareTo(endDate) > 0)
{
out.print("*");
}
out.print(cc.getNumber());
out.println("\t" + sf.format(cc.getExpiryDate()));
}
}
範囲は