0

これは私のコードです:

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

範囲は

4

2 に答える 2

2

これは宿題なので、完全なコードは示しません。

.compareTo()Java Date クラスを使用すると、メソッドを使用して 2 つの日付を比較できます。正確に何年も先の日付を作成しrange、クレジット カードの有効期限がそれよりも後かどうかを調べてみてください。

于 2012-07-24T03:08:25.760 に答える
1

java の compareTo を使用すると、2 つのオブジェクトを比較できます。したがって、2 つの日付を比較すると、どちらが遅いか早いかがわかります。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 を実行すると、比較する数値が大きい場合に負の整数が返されます。それ以外の場合、オブジェクトが大きい場合は正になります。等しければゼロになります。それが人々が <0 、 >0 または ==0 を行う理由です

于 2012-07-24T08:39:45.433 に答える