IF语句中的日期类

时间:2012-07-24 03:01:46

标签: java date if-statement string-concatenation

这是我的代码:

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()));
                     }
            }

范围是

2 个答案:

答案 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