ugrás a tartalomhoz

Számláló készítése

conyg · 2010. Okt. 14. (Cs), 20.04
Kedves fórumozók!
Az alábbi feladatot kellene megoldanom.
Adott az alábbi eljárás:

t=secundum
T1=8 óra 00 perc
T2=19 óra 00 perc
Érték1=X (ez csak 8 és 19 között pörög)
Érték2 =Y ( ez folyamatosan pörög)
ZT = Induló idő
ST= rendszeridő, vagyis valós idő, system time
ST-ZT = t

program start
Y=Y+(558/3600 * t)
if ST=T1 go subritine1
if ST= T2 subrutine1 stop

subrutine1
X=X+(15/3600 *t)

Az egyedüli gondom az, amikor "X" értéket kellene megvalósítanom, ami 8-19 óráig pörög minden nap.
Hogy tudom megadni, hogy 8 előtt és 19 után ne számláljon?
Először is a gondom az, hogy a time() függvény az nem csak a napi órákat számolja ugye, hanem 1970.01.01 00:00:00-tól számol folyamatosan, ezért ebből minden nap más-más számot kellene kivonni, hogy csak az adott napi másodpercek maradjanak, amit össze lehetne hasonlítani 28800 (8 óra mp-ben) és 68400 (19 óra mp-ben)értékekkel.
Lehet, hogy rossz oldalról közelítem meg a dolgot, ezért kérem a segítségeteket.
Előre is köszönöm a válaszokat.
 
1

mktime és társai

Poetro · 2010. Okt. 14. (Cs), 20.21
Egy időpillanatot elő tudsz állítani például mktime vagy strtotime és mondjuk előállítod az aznap 0:00-t és ezt vonod ki az aktuális időből, akkor tudod, a mai napon mennyi idő telt el.
2

x értéke eltűnik

conyg · 2010. Okt. 17. (V), 12.09
Köszönöm a segítséget, a következő módon sikerült megoldani a problémát:

$date = $_SERVER['REQUEST_TIME'] ;
$zt=mktime(0,0,0,1,1,2010);
$t1="28800";
$t2="81680";
$time0 = mktime (0,0,0,date("m"),date("d"), date("Y"));
$st=$date-$time0;
$t=$date-$zt;
$y=$y+(558/3600)*$t;
if ($st>$t1 & $st<$t2)
{
$x=$x+(15/3600)*$t;
}

A gondom már csak az, hogy ha nem teljesül az "if" feltétel, akkor az "x" értéke törlődik, pedig én azt szeretném, hogy akkor az utolsó értéket írja ki addig, amíg újra nem igaz az "if".
Erre kérnék ötletek tőletek.
Nagyon köszönöm előre is, és eddig is.
3

mihez képest?

Poetro · 2010. Okt. 17. (V), 14.37
az "x" értéke törlődik

Én nem is látom, hogy $x-nek bármi értéket adtál volna meg, legalábbis a kódban nincs semmi erre utaló jel.
4

x

conyg · 2010. Okt. 17. (V), 18.19
Én nem vágom annyira a php-t, de azt gondolom ezzel adok neki értéket:
$x=$x+(15/3600)*$t;
ha nem, akkor kérlek írd le hogy tudok adni neki értéket, amikor kiíratom az "$x" értékét, akkor van neki.
Köszönöm a segítséget!
5

Így van

Poetro · 2010. Okt. 17. (V), 20.12
Ez így van, de az első kódodban nem szerepelt $x, csak $y.