Hi,
ich arbeite gerade an einem sogenannten "DateFormatter". doch irgendwie komme ich nicht richtig voran. ich glaube das wichtigste habe ich schon, aber ich weiß nicht ob das so stimmt...z.B. erkennt er mir die beiden Boolean-Methoden nicht an....
als eingabe soll man ein datum eingeben, also z.B. l 4 3 2009.
Ausgabe wäre dann: 4. März 2009.
l ist das format (charactertyp):
l(long) = dd. Monatsname yyyy
s(short) = dd.mm.yyyy
e(english) = mm/dd/yyyy
mein bisheriges Programm:
ich arbeite gerade an einem sogenannten "DateFormatter". doch irgendwie komme ich nicht richtig voran. ich glaube das wichtigste habe ich schon, aber ich weiß nicht ob das so stimmt...z.B. erkennt er mir die beiden Boolean-Methoden nicht an....
als eingabe soll man ein datum eingeben, also z.B. l 4 3 2009.
Ausgabe wäre dann: 4. März 2009.
l ist das format (charactertyp):
l(long) = dd. Monatsname yyyy
s(short) = dd.mm.yyyy
e(english) = mm/dd/yyyy
mein bisheriges Programm:
Java:
public class DateFormatter {
//Enumtyp für die Monate
enum Monat {Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember}
int tag;
int monat;
int jahr;
//die zwei Datenelemente
private final int anzahlTage;
private final int nummerMonat;
//Getter-Methoden für die Datenelemente
final int getAnzahlTage(){
return anzahlTage;
}
final int getNummerMonat(){
return nummerMonat;
}
//Format als Charakter
char format;
boolean datumsformat(char format){
if(format == 'l' || format == 's' || format == 'e'){
return true;
}else{
return false;
}
}
//Methode für fehlerhafte Eingabe
boolean fehler(int tag, int monat, int jahr){
if(jahr > 0){
//damdam
}
else if(monat > 0 && monat <= 12){
//damdam
}
else if(tag <= anzahlTage){
//damdam
}
else if(format == 'l' || format == 's' || format == 'e'){
//damdam
return true;
}
else{
return false;
}
}
//Custom-Konstruktor für die Initialisierung der Datenelemente
DateFormatter(int anzahlTage, int nummerMonat){
Monat m;
if(fehler == true){
if(this.monat == 1){
//Initalisieren der Monatsnummer
nummerMonat = 1;
//Zuordnen des Monats
m = Monat.Januar;
//Tage im Monat
anzahlTage = 31;
if(tag <= anzahlTage){
//Ausgabe möglich
output();
}
}
if(this.monat == 2){
nummerMonat = 2;
m = Monat.Februar;
//Tage im Monat
anzahlTage = 28;
if(tag <= anzahlTage){
output();
}
}
if(this.monat == 3){
nummerMonat = 3;
m = Monat.März;
//Tage im Monat
anzahlTage = 31;
if(tag <= anzahlTage){
output();
}
}
if(this.monat == 4){
nummerMonat = 4;
m = Monat.April;
//Tage im Monat
anzahlTage = 30;
if(tag <= anzahlTage){
output();
}
}
if(this.monat == 5){
nummerMonat = 5;
m = Monat.Mai;
//Tage im Monat
anzahlTage = 31;
if(tag <= anzahlTage){
output();
}
}
if(this.monat == 6){
nummerMonat = 6;
m = Monat.Juni;
//Tage im Monat
anzahlTage = 30;
if(tag <= anzahlTage){
output();
}
}
if(this.monat == 7){
nummerMonat = 7;
m = Monat.Juli;
//Tage im Monat
anzahlTage = 31;
if(tag <= anzahlTage){
output();
}
}
if(this.monat == 8){
nummerMonat = 8;
m = Monat.August;
//Tage im Monat
anzahlTage = 31;
if(tag <= anzahlTage){
output();
}
}
if(this.monat == 9){
nummerMonat = 9;
m = Monat.September;
//Tage im Monat
anzahlTage = 30;
if(tag <= anzahlTage){
output();
}
}
if(this.monat == 10){
nummerMonat = 10;
m = Monat.Oktober;
//Tage im Monat
anzahlTage = 31;
if(tag <= anzahlTage){
output();
}
}
if(this.monat == 11){
nummerMonat = 11;
m = Monat.November;
//Tage im Monat
anzahlTage = 30;
if(tag <= anzahlTage){
output();
}
}else{
nummerMonat = 12;
m = Monat.Dezember;
//Tage im Monat
anzahlTage = 31;
if(tag <= anzahlTage){
output();
}
}
}else{
System.out.println("Falsche Eingabe");
}
}
//Methode für Ausgabe
void output(){
if(datumsformat == true){
if(format == 'l'){
//long-Ausgabe: dd.Monatsname yyyy
System.out.printf("%d. %char %d", tag, m, jahr); //%char => Ausgabe Charaktertyp??
}
if(format == 's'){
//short-Ausgabe: dd.mm.yyyy
System.out.printf("%d.%d.%d", tag, monat, jahr); //zweistellige Zahlen??
}
else{
//format == 'e'
//englische Ausgabe: mm/dd/yyyy
System.out.printf("%d/%d/%d", monat, tag, jahr);
}
}else{
//keine Ausgabe
}
}
//Main-Methode
public static void main (String[]args){
//Einlesen der Datumsangaben von der Kommandozeile
char format = args[0].charAt(0);
int tag = Integer.parseInt(args[1]);
int monat = Integer.parseInt(args[2]);
int jahr = Integer.parseInt(args[3]);
DateFormatter d = new DateFormatter(format, tag, monat, jahr);
//Ausgabe des Datums
d.output();
}
}