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.
  1. <?php  
  2. $i=0;  
  3. $beosztas=array();  
  4. while ($i<366)  
  5. {  
  6. $beosztas[$i]="A";  
  7. $beosztas[$i+1]="B";  
  8. $beosztas[$i+2]="C";  
  9. $beosztas[$i+3]="D";  
  10. $i=$i+4;  
  11. }  
  12. $tomb=getdate();  
  13. $mai_nap=$tomb['yday'];  
  14. echo "Ma a ".$beosztas[$mai_nap]." csoport van szolgálatban";  
  15. ?>  
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:
  1. $napok = array"a""b""c""d");  
  2. 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:
  1. $napok = array"a""b""c""d");  
  2. $datum1mktime(0,0,0,1,1,2006);  
  3. $datum2mktime(0,0,0,date('m'),date('d'),date('Y'));  
  4. $eltelt = round((($datum2-$datum1)/86400), 0);  
  5. 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