Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Kuckucks-Uhr (Timer jede volle Stunde oder beliebig)


  • Please log in to reply
No replies to this topic
Wicky
  • Members
  • 1 posts
  • Last active: Mar 26 2014 05:30 PM
  • Joined: 17 Mar 2014

Wenn man möchte, daß der Timer nicht alle 15 minuten, sondern exakt zur vollen Viertelstunde ertönt.

 

Über eine sehr elegante Überbrückung des Timers durch eine Funktion, welche die fehlende Zeit bis zum ersten Schlag berechnet, kann man sehr einfach eine Kuckucksuhr haben.

 

1) im Timer selbst die Zeit einstellen (900000 = 15 minuten)

2) in der aufrufenden Funktion ebenfalls die Zeit 900000 einstellen.

 

(Das erste mal ist das 15min Intervall, das zweite Mal stehen die 15min für jede volle Viertelstunde 15, 30, 45... Kann man ja, wenn man zb möchte auch ungewöhnlich um 12:05, 12:20 wollen... es geht jedenfalls alles!)

 

Die Funktion ActivateTimer dient hierbei nur zur synchronisierung mit der Uhr, damit es genau um 15, 30, 45, 00 schlägt.

Man kann den Timer aber auch einfach durch "gosub t15min" sofort starten.

 

PS: Eine Stunde sind 3600000 ms, wer ihn nur zu jeder vollen Stunde möchte. Zweimal eingeben nicht vergessen! :)

ActivateTimer("t15min", 900000)	; um zu jeder vollen Viertelstunde zu kuckucken

t15min:
	SetTimer, t15min, 900000
	TrayTip, Kuckuck!, Es ist %A_Hour%:%A_Min% Uhr
return


ActivateTimer(name, interval)	; Funktion setzt timer auf 12:00  12:15  12:30  ...
{
	now  := A_MSec + A_Sec*1000 + A_Min*60000 + A_Hour*3600000
	then := Ceil(now/interval)*interval
	diff   := then - now
	SetTimer, %name%, %diff%
}