lotta Geschrieben 17. Mai 2009 Geschrieben 17. Mai 2009 Hallo, brauche Hilfe bei einer Aufgabenstellung in Java...könnt ihr mir evt. weiter helfen??? Sollen ein Programm schreiben, das Geburtstage aus einer Textdatei liest und den Namen + Geburtstag der Person ausgiebt, die als nächstes Geburtstag hat..im Grunde fehlt die Methode nächster Geburtstag noch...Namen (leider alle Namen??) und errechnetes Alter der Personen wird bereits ausgegeben.. wer hat einen Plan??:eek Zitieren
flashpixx Geschrieben 17. Mai 2009 Geschrieben 17. Mai 2009 Schau Dir Comparable (Java 2 Platform SE v1.4.2) und dazu Arrays (Java 2 Platform SE v1.4.2)[]) bzw Collections (Java 2 Platform SE v1.4.2)) Phil Zitieren
lotta Geschrieben 17. Mai 2009 Autor Geschrieben 17. Mai 2009 Hey danke..ne Array List habe ich schon erzeugt,zur Ausgabe der Namen und Daten.. aber das mit der Ausgabe des nächsten Geb. klappt irgendwie nicht, hab schon versucht ne Methode compareTo zu schreiben, aber weiß auch nicht, ob dass so richtig ist, muss dann ja erst die Monate vergleichen und danach die Tage,ne (du merkst, absoluter Anfänger:rolleyes:)..schau mir mal Comparable an und versuche da durchzublicken Grüße lotta Zitieren
Enno Geschrieben 17. Mai 2009 Geschrieben 17. Mai 2009 schreib den Geburtstag einfach in einem anderen Format: 0427 = 27. April 1203 = 3. Dezember Diese Schreibweise kannst du dann recht einfach sortieren und darin suchen. Zitieren
lotta Geschrieben 17. Mai 2009 Autor Geschrieben 17. Mai 2009 Im Grunde ein guter Plan, aber wir haben eine vorgegebene txt Datei, in der Namen und Geburtstage feststehen...aus dieser soll dann derjenigen ausgegeben werden, der als nächstes Geburtstag hat..??? Zitieren
Enno Geschrieben 17. Mai 2009 Geschrieben 17. Mai 2009 Wie willst du es Grundsätzlich machen? Alle Personen einlesen und dann die gesuchte ausgeben? Dann bau dir doch beim einlesen im Array gleich das sortierfeld mit auf. Zitieren
lotta Geschrieben 17. Mai 2009 Autor Geschrieben 17. Mai 2009 Genau, das ist ein guter Plan..ehrlich gesagt habe ich da selber nicht so die Ahnung von..wie mache ich das? Ich schicke dir mal einen Teil, vielleicht kannst da mal rüber gucken.. void ladeTeam(String dateiname){ Fussballer F; Geburtstag G; String name,geburtstagString; Mannschaft = new ArrayList<Fussballer>(); try { BufferedReader b = new BufferedReader (new FileReader ("kader.txt")); String s = null; while (b.ready ()) { s = b.readLine (); StringTokenizer st = new StringTokenizer (s,";"); name = st.nextToken(); geburtstagString = st.nextToken(); F = new Fussballer(name,geburtstagString); G = new Geburtstag(geburtstagString,0,0,0,0); this.addSpieler(F,G); } b.close (); } catch (IOException e) { System.err.println (e); } } public Map<String,Fussballer> makeMap(){ Map<String,Fussballer> map; map = new TreeMap<String,Fussballer>(); for (Fussballer F: this.getMannschaft()){ map.put(F.getName(), F); } return map; } Wo da einbauen??:confused::confused::confused: Zitieren
lotta Geschrieben 18. Mai 2009 Autor Geschrieben 18. Mai 2009 Bitte keine Antworten mehr, habe selber ne Lösung gefunden, Danke Zitieren
flashpixx Geschrieben 18. Mai 2009 Geschrieben 18. Mai 2009 Es ist durchaus sinnvoll vielleicht Deine Lösung zu posten oder sie zu beschreiben, damit auch andere etwas davon haben Phil Zitieren
mynote Geschrieben 18. Mai 2009 Geschrieben 18. Mai 2009 Ich persönlich würde sagen, dass die beste Lösung ist den Geburtstag als Unix-Timestamp zu speichern (Falls es nach Alter sortiert werden soll) ansonsten wie bereits mein vorredner beschrieben hat das Geburtsdatum anders formatieren. Ebenso wäre es möglich wenn du zuerst durch die Monate loopst und dann darin weiter durch die Tage loopst. Hoffe ich konnte helfen. LG Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.