这是我的代码:
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()));
}
}
}
首先,我的应用程序要求Range年,让我们说进入" 3"。我想放一个" *"在我的任何年份的日期之下,低于范围编号。我假设Java假设日期是截至今天,所以2012年7月23日。所以,例如,如果我们得到16/04/2013,我想要一个" *"在它旁边。但是,如果我们得到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()));
}
}
范围是
答案 0 :(得分:2)
由于这是作业,我不会给你完整的代码。
Java Date类允许使用.compareTo()
方法比较两个日期。尝试创建一个日期恰好range
年的日期,并查明信用卡的到期日期是否晚于此。
答案 1 :(得分:1)
java中的compareTo允许您比较两个对象。因此,如果您比较两个日期,您可以看到哪个日期更晚或更早。我会在你的for循环中放入一些if语句。
例如
Date endDate= new Date(2015, 12, 25);
for (//some stuff....)
{
if (cc.getExpiryDate.compareTo(endDate)<0)
{
if (cc.getExpiryDate.compareTo(//????????? figure out which date should go here) >0)
{
// put a star here
}
}
}
当你做.compareTo如果你比较的数字越大,你将得到一个负整数,否则如果你的对象更大,它将是正数。如果他们是平等的,它将为零。这就是为什么人们做&lt; 0,&gt; 0或== 0