Java Datum-Objekte sortieren

  1. banz

    banz Thread StarterMacUser Mitglied

    Mitglied seit:
    26.05.2003
    Beiträge:
    406
    Zustimmungen:
    0
    Hallo,
    wieder mal so eine ( für euch ) Kinderkram - Schulaufgaben - Frage.
    Aufgabe: eine Menge von ca. 20 -200 Daten in einem Datumsformat sortieren.
    Nach eingehender Recherche im Net rauscht mir nun der Kopf bei den unterschiedlichen Array und Containertypen, Listen und was weiss ich nicht alles.
    Weil ich im Moment nicht weiter weiss, frage ich mal euch:

    Eingegeben werden Strings in der Form "dd.mm.yyyy"
    dann wird das zu einem GregorianCalendar - Objekt konvertiert, um zu überprüfen, ob es dieses Datum gibt / gab. ( Zumindest glaub ich das :)
    Die anfallenden Daten sollen in ein Array oder Liste oder was weiss ich nach Jahr -> Monat -> Tag aufwärts sortiert werden.

    Welche Containerart bietet sich hier an, die vielleicht sogar schon sortiert abspeichert?

    mfg banz
     
    banz, 23.12.2004
  2. jay

    jayMacUser Mitglied

    Mitglied seit:
    12.08.2003
    Beiträge:
    154
    Zustimmungen:
    0
    hi.

    es gibt verschieden möglichkeiten. eine davon wäre zb.

    Code:
    private void init() throws DateSortException
       {
          Object[] dateArray =  new Object[]{"22.12.2004", "12.02.2004", "30.12.2005"};
          ArrayList dateList = new ArrayList();
          
          for(int count = 0; count < dateArray.length; count++)
          {
             addToDateList(dateArray[count], dateList);
          }
          
          System.out.println(sortList(dateList));
       }
       
       private ArrayList sortList(ArrayList dateList) throws DateSortException
       {
          if(dateList != null)
          {
             Collections.sort(dateList); //liste sortieren
             return dateList;
          }
          else
          {
             throw new DateSortException("ne ne null!");
          }
       }
       
       private void addToDateList(Object date, ArrayList dateList) throws DateSortException
       {
          if((date != null) && (dateList != null))
          {
             if(!date.toString().equals(""))
             {
                String dateStr = date.toString().trim();
                if(dateStr.length() == 10) // auf richtige length checken
                {
                   dateStr.replaceAll(".", ""); // dots entfernen
                   dateList.add(dateStr);  // der liste hinzufuegen
                }
                else
                {
                   throw new DateSortException("zu lang");
                }
             }
             else
             {
                throw new DateSortException("passt nit");
             }
          }
          else
          {
             throw new DateSortException("passt nit");
          }
       }
    
    hth.jay

    EDIT: zwecks check bist mit dem gregorian-cal schon auf dem richtigen weg. Danach wie gehabt. Sollte ja auch nur ein kleiner Denkanstoss werden. Du kannst auch, wenn du mit Date arbeitest, entweder Year, Month oder Day getrennt extrahieren. Beste Möglichkeit, als .getDate() extrahieren (dann bekommst du einen int), und diesen in die ArrayList schupsen. Oder einen eigenen Sort-Alg entwerfen ;).
     
  3. banz

    banz Thread StarterMacUser Mitglied

    Mitglied seit:
    26.05.2003
    Beiträge:
    406
    Zustimmungen:
    0
    danke ;-)

    Die Überprüfung , ob ein Datum richtig ist, mache ich jetzt doch einfacher mit

    public Date verify_Dat( String datStr ) throws ParseException
    {
    DateFormat datForm = DateFormat.getDateInstance();
    datForm.setLenient( false );
    Date dat = datform.parse( datStr );
    return dat;
    }

    *Nachdem ich schon die wildesten if abfragen zusammengbastelt hatte *gg* war das Günstigste natürlich viel zu offensichtlich*.

    Werde wohl auch eine ArrayList nehmen und die, bei der Eingabe verifizierten Daten durch ein InsertionSort ( andem ich noch bastelle *rofl**grmpf* ) reinpacken.

    vielen Dank für die Denkanstösse
     
    banz, 23.12.2004
Die Seite wird geladen...
Ähnliche Themen - Java Datum Objekte
  1. anotheryou
    Antworten:
    1
    Aufrufe:
    142
    Apfeleis
    24.06.2017
  2. kurtmac
    Antworten:
    4
    Aufrufe:
    331
    kurtmac
    15.11.2016
  3. msdd79
    Antworten:
    5
    Aufrufe:
    663
  4. LuQasZ
    Antworten:
    15
    Aufrufe:
    1.225
  5. SpecialFighter
    Antworten:
    19
    Aufrufe:
    540
    SpecialFighter
    22.07.2015