Wieviele Einträge hat das Array denn?
Wenn es ziemlich viele sind, kann man es so sortieren, dass ein Monats- und Jahresbereich per Lookup angesprungen werden können.
Wenn du z.B. den 12.08.2001 suchst, könnte so gleich der Index-Bereich 2001-08 angesprungen werden.
Alternativ kann man auch überlegen, die Daten statt in einem Array in einer Datenbank abzulegen, die per
SQL abzufragen ist. Da kann man z.B. "SELECT * FROM Dates WHERE (Month=8) AND (Year=2001)" machen, was auch ziemlich schnell sein sollte (ordentliche Indizes voraugesetzt) - oder "SELECT * FROM Dates WHERE (Day=12) AND (Month=8) AND (Year=2001)", um ein bestimmtes Datum zu finden. Wenn kein Ergebnis zurückgeliefert wird, existiert das Datum nicht.