Wie kann ich das Jahr aus einem Date-Objekt abrufen, ohne veraltete Methoden zu verwenden?Java

Java-Forum
Anonymous
 Wie kann ich das Jahr aus einem Date-Objekt abrufen, ohne veraltete Methoden zu verwenden?

Post by Anonymous »

Ich habe eine Aufgabe erhalten, bei der ich eine Reihe von Schnittstellen und Klassen für eine Autovermietung erstellen muss. Ich arbeite gerade an der Implementierung einer LicenceNumber-Klasse, die der folgenden Spezifikation entsprechen muss:

Die Lizenznummer besteht aus drei Komponenten. Die erste Komponente ist die Verkettung des Anfangsbuchstabens des Vornamens des Fahrers mit dem Anfangsbuchstaben des Nachnamens des Fahrers. Die zweite Komponente ist das Ausstellungsjahr der Lizenz. Die dritte Komponente ist eine beliebige Seriennummer. Beispielsweise hätte die Zeichenfolgendarstellung der Lizenznummer für eine 1990 an Mark Smith ausgestellte Lizenz die Form MS-1990-10, wobei die 10 eine Seriennummer ist, die zusammen mit den Initialen und dem Jahr die Eindeutigkeit der Lizenznummer als Ganzes garantiert.
Sie sollten die Klasse java.util.Date verwenden, um Datumsangaben darzustellen. Sie dürfen jedoch keine veralteten Methoden der Date-Klasse verwenden. Verwenden Sie in Ihren Testklassen beispielsweise java.util.Calendar, um Geburtsdaten und Ausstellungsdaten von Lizenzen zu erstellen. Sie können die Standardzeitzone und das Standardgebiet annehmen. (Beachten Sie, dass im java.time-Paket, das in Java 1.8 eingeführt wurde, jetzt bessere Klassen verfügbar sind, aber es wird eine gute Erfahrung sein, mit Klassen zu arbeiten,
die weniger gut geschrieben sind.)

Bisher habe ich die folgende Implementierung für die LicenceNumber-Klasse:

Code: Select all

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
}
}
Ich möchte in der Lage sein, nur das Jahr von issueDate abzurufen, aber ich kann nur herausfinden, wie das geht, indem ich die veraltete Methode getYear() verwende. Dies verstößt offensichtlich gegen die Kriterien. Kann mir jemand erklären, wie man das Jahr aus einem Datumsobjekt erhält, ohne veraltete Methoden zu verwenden?
Vielen Dank im Voraus.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post