Veröffentlicht 17. Mai 200916 j 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
17. Mai 200916 j 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
17. Mai 200916 j 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
17. Mai 200916 j 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.
17. Mai 200916 j 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..???
17. Mai 200916 j 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.
17. Mai 200916 j 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:
18. Mai 200916 j Es ist durchaus sinnvoll vielleicht Deine Lösung zu posten oder sie zu beschreiben, damit auch andere etwas davon haben Phil
18. Mai 200916 j 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
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.