Array nach Monat und Jahr sortieren

Hallo liebe community …ich habe gerade
die Aufgabe bekommen ein gestelltes Array mit PDF dateien einmal nach Monat und einmal nach Jahren zu sortieren…

Sprich ich habe z.b.

PDF1: 2012.05.01
PDF2: 2012.03.02
PDF3: 2011.01.04
PDF4: 2010.06.01

aussehen solls dann so:

2012
Januar
PDF
Februar
PDF

ich hab keinen Ansatz …
könnt ihr mir helfen ?!

Hi Codetomaser,
Ich nehme mal an, dass die diese Daten als string zur Verfügung stehen.

Prinzipiell würde ich wie folgt vorgehen:
Parsen der einzelnen Teile, z.B. weißt du ja, dass am Anfang immer der Dateiname steht (PDF1) gefolgt von einem Doppelpunkt, demnach kannst du mit einer einfachen if-abfrage schonmal den Dateinamen extrahieren. Ich weiß nicht in welcher Umgebung (z.B. .NET) du dich befindest, aber dort könntest du die 2. Komponente (das Datum) einfach in eine DateTime Objekt umwandeln via "Convert.ToDateTime(„2012.05.01“).

Das Ziel, bevor du überhaupt an das Sortieren denken kannst, muss also sein, die Zeichenkette in ein Objekt oder einzelne Zahlen umzuwandeln, die du untereinander vergleichen kannst.
Du kannst zwar die strings vergleichen, bekommst aber keine zuverlässigen & richtigen Ergebnisse. Z.B.:
würde er diese drei Zahlen 1,2,11 wie folgt sortieren:
1
11
2

  • das ist sicher nicht was du brauchst. Also brauchst du entweder ein DateTime Objekt, oder Allgemein gesagt, musst du das Datum in seine einzelnen Komponenten aufteilen und z.B. als Integer ablegen. Damit du diese Vergleichen kannst.

Die Sortierung machst du dann mit einem Sortieralgorhitmus (z.B. Bubblesort).
Dabei musst du nur beachten, dass du zuerst nach Jahr, dann nach dem Monat und dann nach dem Tag sortierst!

Wichtig wäre sicher zu stellen, dass du das gegebene Input sicher umwandeln kannst. Also solltest du dein Input auf jeden Fall prüfen (z.B. ob es das oben gegebene Format hat - das kannst du mit Regula Expressions erreichen).

Grüße,
Thomas