ugrás a tartalomhoz

Minden napra az előre meghatározott betűjel kiírása

Anonymous · 2006. Jún. 6. (K), 15.43
Üdv!

Egy tűzoltóságnak csinálok honlapot, és az éppen aktuális szolgálatban lévő csoport betűjelét kellene kiíratnom.
Négy csoport van: "A","B","C","D". Az éves beosztás szerint 2006.01.01-én az "A" csop. volt szolgálatban, 2006.01.02-án a "B" és így tovább, majd "D" után természetesen megint "A".

Arra gondoltam, hogy egy tömbbe rakom a négy betűt, és az aktuális dátumból valahogy maradékképzéssel számolom ki hanyadik elemet kell kiíratni, vagy egy tömbben tárolom a 12 hónapot, és ezeknek az elemei ugyancsak tömbök, amik a napok szerinti betűket tartalmazzák.
Viszont úgy szeretném megcsinálni, hogy ne kelljen ezt minden évben piszkálni, elég legyen egyszer megírni.
A gond ott kezdődik, hogy ez így már teljesen behomályosította a kis agyam a szökőévek miatt, és mert a hónapok nem mindíg ugyanannyi napból állnak ::)

Ha valaki tudna egy elegáns megoldást legalább elméletben ajánlani, nagyon hálás lennék.

ScidaR
 
1

Hónapok.

janoszen · 2006. Jún. 6. (K), 15.46
Hónapokra bontsd, lekérdezed az aktuális dátumot és minden csoport 3 hónapot kap. A maradékos osztás pedig jó ötlet.
2

-

breakline · 2006. Jún. 6. (K), 16.02
Hali!

Ha a beosztás folytonos, használhatod a getdate() fv.-t is.

<?php
$i=0;
$beosztas=array();
while ($i<366)
{
$beosztas[$i]="A";
$beosztas[$i+1]="B";
$beosztas[$i+2]="C";
$beosztas[$i+3]="D";
$i=$i+4;
}
$tomb=getdate();
$mai_nap=$tomb['yday'];
echo "Ma a ".$beosztas[$mai_nap]." csoport van szolgálatban";
?>
Ez persze akkor jó, ha minden év első hónapján ugyanaz van szolgálatban, de átírni is könnyű. Bár kicsit ronda a kódja

üdv
BL
3

datediff

zsepi · 2006. Jún. 6. (K), 16.13
Szvsz a legegyszerűbb az lenne, ha letárolnád az első napot (te esetedben 2006.01.01.), majd az aktuális napnál kiszámolod, hány nap telt el az első nap (tűzoltóság-honlapi Big Bang) óta, s ennek a számnak a négyes maradéka megadja, hogy 1., 2., 3., vagy 4. csoport van aznap szolgálatban
4

date

Anonymous · 2006. Jún. 6. (K), 16.15
Van egy date() nevu fgv phpban, tök szupcsi dolgokat lehet vele csinalni. :)
pl date('z'): Az év napja 0-tól 365-ig. Innen nem hinnem hogy gondot okozna, de ennel rovidebben nem nagyon lehet:

$napok = array( "a", "b", "c", "d");
echo $napok[(date('z') % 4)];
5

kimaradt :)

Anonymous · 2006. Jún. 6. (K), 16.26
hoppa nem olvastam vegig figyelmesen, marmint hogy nem akarod evente atirni, de igy se tul nehez:

$napok = array( "a", "b", "c", "d");
$datum1= mktime(0,0,0,1,1,2006);
$datum2= mktime(0,0,0,date('m'),date('d'),date('Y'));
$eltelt = round((($datum2-$datum1)/86400), 0);
echo $napok[($eltelt % 4)];
6

Köszi!

Anonymous · 2006. Jún. 6. (K), 18.04
Gondolhattam volna hogy ilyen egyszerű a megoldás, feleslegesen bonyolítottam a dolgot. :)
Köszi srácok!
ScidaR