Hogyan találhatom meg a legközelebbi dátumot egy tömbben?
A legközelebbi alatt azt értem, hogy a mostani dátumnál későbbi és hozzá legközelebb lévő.
Egy tömbben tárolok születésnapokat (hónap és nap) és ebből kéne kiválasztani a legközelebbit.
Az itt nem működik, hogy növekvő sorrendbe rendezem és megnézem egy foreach-ben, melyik lesz legelőször nagyobb a mostani dátumnál, mert ha év végén nézzük akkor lehet hogy a legközelebbi január 2-án jönne, amit a program így nem ismerne fel, mert kisebb annak a dátumnak az értéke, mint a mostanié.
Milyen algoritmussal lehet kiválasztani?
Php-ban van a program, de pszeudokódot is megértem, az a lények, hogy az algoritmus meglegyen.
Pl ilyesmi modon:
sort($datumok);
$next = $datumok[0];
foreach ($datumok as $datum){
if($datum > date('m-d')){
$next = $datum;
break;
}
}
Feltételes maximumkiválasztással.
A sorbarendezés elég nagy overhead a semmiért.
Azt azért hozzátenném, hogy egy valódi nyelvben (nem PHP féle borzadályban) a megoldás 1 sor:
var closestFutureDate = dates.Where(date => date > DateTime.Now).Min();
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!