Mam zadanie, które polega na wykonaniu klasy Data (u mnie DateExample)
- przechowującej dzień, miesiąc i rok danej daty (u mnie data urodzin);
- klasa powinna chronić swoje pola i zapewnić niezmienność daty;
- data powinna mieć domyślny konstruktor ustawiający bieżącą datę i konstruktor z trzema argumentami;
- klasa powinna mieć zmienne dla wszystkich pól, ma gettery i setery;
klasa ma metodę getMonthName(int month) która dla danego miesiąca zwraca nazwę w formie skróconej np. JAN czy FEB; - klasa posiada metodę toString formatującą napis do postaci DD MMM RRR
Wszystko starałem się zrobić wg swojej (na razie jeszcze prymitywnej) wiedzy.
Proszę jednak o takie krytyczne spojrzenie i wytknięcie błędów z propozycją na lepszy kod.
Może też wszystkiego dobrze nie zrozumiałem...
Będę wdzięczny za pomoc.
package MyDate;
import java.text.DateFormat;
import java.text.FieldPosition;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
class DateExample {
int day;
int month;
int year;
DateExample() {
}
DateExample(int day, int month, int year) {
this.day = day;
this.month = month;
this.year = year;
}
@Override
public String toString() {
return "The date of my birthday: " + day + "/" + getMonthName(month) + "/" + year;
}
public void setDay(int day) {
this.day = day;
}
public void setMonth(int month) {
this.month = month;
}
public void setYear(int year) {
this.year = year;
}
public int getDay() {
return day;
}
public int getMonth() {
return month;
}
public int getYear() {
return year;
}
public static void DateNow () {
GregorianCalendar calendar = new GregorianCalendar();
SimpleDateFormat formater=new SimpleDateFormat("dd MMMM yyyy");
StringBuffer date2 = new StringBuffer("");
Date now = calendar.getTime();
System.out.println(formater.format(now, date2, new FieldPosition(DateFormat.DATE_FIELD)));
}
public static String getMonthName(int month) {
String[] stringMonth = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"};
return stringMonth[month];
}
}
public class DateEx {
public static void main(String[] args) {
DateExample date = new DateExample(01, 9, 1970);
System.out.println(date.toString());
DateExample date2 = new DateExample();
date2.DateNow();
Scanner input = new Scanner(System.in);
DateExample date1 = new DateExample();
System.out.println("Enter the date: ");
System.out.println("Day: ");
int d = input.nextInt();
System.out.println("Month: ");
int m = input.nextInt();
System.out.println("Year: ");
int y = input.nextInt();
date1.setDay(d);
date1.setMonth(m);
date1.setYear(y);
System.out.println("The date is: ");
System.out.println(date1.getDay() + "/"+ DateExample.getMonthName(date1.getMonth()-1) +"/"+ date1.getYear());
}
}
setterami
.