Hozzászólások
Sziasztok!
Gondoltam, megpróbálkozok egy naptárprogrammal PHP-ban, ami kezeli a programozott eseményeket, és egy helyen elakadtam: Adott egy programozott esemény, ami mondjuk 2005. január 2.-ára lett beprogramozva és három naponta ismétlődik. Meg tudná nekem írni valaki azt, hogy hogyan tudom kiszámolni pl. X. év Y. hónapjának Z. napjáról egyszerűen azt, hogy azon a napon sor kerül-e az ismétlődő eseményre, vagy sem? :)
Nem szükséges kódot írni, elég volna ha csak elmagyarázná valaki. :)
Köszi szépen! :)
- A hozzászóláshoz be kell jelentkezni
Egy igénytelennek tűnő példa: a unix timestamp segítségével megnézed, hogy ,,háromnaponként lépkedve a naptárban'' olyan napra jutsz-e, ahol van esemény.
Mondjuk 2005. január 10-én van egy esemény, és kíváncsi vagy, hogy 2005. július 8-án van-e, akkor a
[code:1:02445c1b06](strtotime("8 July 2005")-strtotime(10 Januar 2005"))/259200[/code:1:02445c1b06] osztás maradéka nulla-e. Ha igen, akkor van esemény július 8-án, ha nem 0, akkor nincs.
Mondjuk kicsit nekem furcsának tűnik, meg ki se próbáltam, de hirtelen ez jutott az eszembe :).
- A hozzászóláshoz be kell jelentkezni
[quote:cff47f6fdf="siromega"]Mondjuk kicsit nekem furcsának tűnik, meg ki se próbáltam, de hirtelen ez jutott az eszembe :).
Erről van szó, nagyszerű, köszönöm szépen! :)
- A hozzászóláshoz be kell jelentkezni
Beteszem ide is a kódrészletet amit ennek alapján írtam, hátha kell még egyszer valakinek:
[code:1:2486c0ce01]....
foreach ($month_days as $key => $i)
{
$date_begin=gmmktime(0,0,0,$row[2],$row[3],$row[1]);
$date_now=gmmktime(0,0,0,$this->_month,$i,$this->_year);
if ($date_now>$date_begin)
{
if ((($date_now-$date_begin)/86400)%$row[7]==0)
{
$tabledata[$i]=array($row[0],$row[4],$row[5],$row[6]);
unset ($orig_days[$key]);
}
}
else
{
if ((($date_begin-$date_now)/86400)%$row[7]==0)
{
$tabledata[$i]=array($row[0],$row[4],$row[5],$row[6]);
unset ($orig_days[$key]);
}
}
}
....[/code:1:2486c0ce01]
- A hozzászóláshoz be kell jelentkezni