4.7. Podróże w czasie.

Wiemy że program przeglądający pytając nas o wartość parametru umieszcza w zmiennej t informacje dla jakiego czasu chce uzyskać wartość parametru.

Wiem też, półoficjalnie, że ta wartość zapisana jest jako ilość sekund od pewnego czasu '0'. Możemy się więc pokusić o napisanie parametru, który będzie liczył np. przyrost temperatury zewnętrznej w okresie 10 minut, np. takiego:

	v = p("xxxx:Sieć:Sterownik temperatura zewnętrzna, t, PT_MIN10)
		- p("xxxx:Sieć:Sterownik temperatura zewnętrzna, t - 10 * 60, PT_MIN10) 

I faktycznie, parametr zwróci to co chcemy. Jak widać da się to tak zrobić w ten sposób, ale ręczne operowanie na wartości zmiennej t jest niewygodne, dlatego też w formułach programu przeglądającego mamy dostępną funkcję szb_move_time. Funkcja szb_move_time przyjmuje 3 parametry: czas początkowy, o ile jednostek należy czas początkowy przesunąć, jednostka przesunięcia. To co ta funkcja zwraca to przesunięta wartość czasu. Zanim podamy przykład to jeszcze wyjaśnienie o co chodzi z tymi jednostkami. Za pomocą funkcji szb_move_time czas możemy przesunąć o pewną ilość: lat, miesięcy, dni, tygodni, okresów 8-godzinnych i 10-minutowych. Odpowiadają one ściśle rodzajom średnich na ekranach programu draw3. Oznaczenia jednostek są też takie same jak oznaczenia średnich, a więc odpowiednio PT_YEAR, PT_MONTH, PT_WEEK, PT_DAY, PT_WEEK, PT_HOUR8, PT_MIN10.

Kilka przykładów wywołań funkcji szb_move_time:

Możemy teraz np. napisać parametr który będzie podawał różnicę między wartością temperatury zewnętrznej dla czasu dla którego liczony jest parametr a czasem miesiąc wcześniejszym.

local miesiac_wczesniej = szb_move_time(t, -1, PT_MONTH)
	v = p("xxxx:Sieć:Sterownik temperatura zewnętrzna, t, PT_MIN10)
		- p("xxxx:Sieć:Sterownik temperatura zewnętrzna, miesiac_wczesniej, PT_MIN10) 

Możemy też wykorzystując fakt, że w zmiennej pt mamy średnią dla której rysowany jest parametr, zrobić rzecz następującą - parametr, który oglądany na ekranie dekada będzie podawał nam wzrost średniej temperatury rocznej między poszczególnymi latami; oglądany na ekranie rocznym to wzrost średniej temperatury miesięcznej między poszczególnymi miesiącami; miesięcznej, wzrost temperatury dobowej między poszczególnymi dniami; itp.

local poprzedni_czas = szb_move_time(t, -1, pt)
	v = p("xxxx:Sieć:Sterownik temperatura zewnętrzna", t, pt)
		- p("xxxx:Sieć:Sterownik temperatura zewnętrzna", poprzedni_czas, pt)