私はレンタカー会社のインターフェースとクラスのセットを作成する必要がある割り当てを受けました。ライセンス番号は、3つのコンポーネントがあり廃止予定のメソッドを使用せずにDateオブジェクトから年を取得するにはどうすればよいですか?
:私は、次の仕様と一致している必要がありLicenceNumberクラスの実装に取り組んで忙しいです。最初のコンポーネントは、ドライバーの名の頭文字とドライバーの最後の名前の頭文字を連結したものです。 2番目の要素はライセンスの発行年です。 3番目の要素は任意のシリアル番号です。たとえば、1990年にMark Smithに発行されたライセンスのライセンス番号の文字列表現は、MS-1990-10の形式をとります。ここで、10はシリアル番号で、イニシャルと年を指定すると、ライセンス番号全体。
日付を表すには、java.util.Dateクラスを使用する必要があります。ただし、Dateクラスの非推奨メソッドは使用しないでください。たとえば、テストクラスでは、java.util.Calendarを使用して、生年月日とライセンス発行日を作成します。デフォルトのタイムゾーンとロケールを想定できます。 (Java 1.8で導入されたjava.timeパッケージではより良いクラスが利用できるようになりましたが、あまりうまく書かれていないクラス で作業するのは良い経験になるでしょう)。
これまでのところ、私はLicenceNumberクラスの次の実装を持っている:私はissueDateから年のみを取得できるようにしたい
import java.util.Calendar;
import java.util.Date;
public class LicenceNumber {
private String licenceNo;
public LicenceNumber(Name driverName, Date issueDate){
setLicenceNo(driverName, issueDate);
}
public String getLicenceNo() {
return licenceNo;
}
public void setLicenceNo(Name driverName, Date issueDate) {
String initials;
initials = driverName.getForename().substring(0, 1) + driverName.getSurname().substring(0,1);
System.out.println(initials);
int issueYear = issueDate.getYear(); //Deprecated
}
}
が、私はどのように把握することができます唯一の方法これは、推奨されないメソッドgetYear()を使用することです。これは明らかに基準に反しているので、廃止予定のメソッドを使用せずにDateオブジェクトからYearを取得する方法について誰かが気にすることはできますか?
ありがとうございます。
割り当てに指定されているようにjava.util.Calendarを使用しようとしましたか? – antlersoft
私の理解では、クラスのテストではCalendarユーティリティを使用することのみが許可されています。たとえば、getInstance()を使用してカレンダーを作成し、次に(YYYY、MM、DD)を使用してCalendarを設定し、getTime()を使用してDrivingLicenseに渡しました。 getTime()は、dateオブジェクトを作成します。 –
'SimpleDateFormat 'のような書式設定クラスを使用することは許可されていますか? – KevinO