|
You last visited: Today at 22:43
Advertisement
In Autoit rechnung mit Zeit
Discussion on In Autoit rechnung mit Zeit within the AutoIt forum part of the Coders Den category.
04/28/2011, 21:58
|
#1
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
In Autoit rechnung mit Zeit
Hallo,
ich wollte fragen wie man es anstellt eine Zeit rechung zu machen?
Also z.B: ich hab ein Label wo "00 min 00 sek" steht und jetzt möchte ich das die benötigte Zeit in dem Label angeben wird. D.h: wenn mein Prgramm für etwas 10sek(10000ms) braucht und es den Schritt, wofür das Programm 10sek braucht, das z.B 7 mal wiederholt braucht es ja 70sek(70000ms) wie rechnet man das und gibt es wieder. Weil 70 sek sind ja 1 min und 10 sek, aber ich weiß halt nicht wie man das da eingibt das der wenn man 70 oder 80 sek hat das der 1 min 10 sek oder halt 1 min 20 sek usw macht.
Sorry für die komische Formulierung wusste keine bessere
MfG Ludder231
|
|
|
04/28/2011, 23:03
|
#2
|
elite*gold: 52
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
|
Ich hab vor kurzer Zeit mal drauf losgeschrieben und eine Func gemacht, die von einer Zeit eine andere abzieht. Ich denke du kannst dir daraus das Prinzip erklären.
PHP Code:
Func _WunschAnkunft($Uhrzeit, $Laufzeit) $aAnkunft = StringSplit($Uhrzeit, ":") $aLaufzeit = StringSplit($Laufzeit, ":") $S1 = $aAnkunft[3] - $aLaufzeit[3] If $S1 < 0 Then $Sp = 1 $S = 60 + $S1 Else $S = $S1 EndIf $M1 = $aAnkunft[2] - $aLaufzeit[2] If IsDeclared("Sp") Then If $Sp = 1 Then $M1 -= $Sp EndIf EndIf If $M1 < 0 Then $Mp = 1 $M = 60 + $M1 Else $M = $M1 EndIf $H1 = $aAnkunft[1] - $aLaufzeit[1] If IsDeclared("Mp") Then If $Mp = 1 Then $H1 -= $Mp EndIf EndIf If $H1 < 0 Then $H = 24 - $Mp Else $H = $H1 EndIf If StringLen($S) = 1 Then $S = "0" & $S EndIf If StringLen($M) = 1 Then $M = "0" & $M EndIf Return ($H & ":" & $M & ":" & $S)
Und für alle die jetzt denken was ein merkwürdiger Quelltext ich hab einfach mal drauf los geschrieben und das ist eben rausgekommen
|
|
|
04/28/2011, 23:05
|
#3
|
elite*gold: 0
Join Date: Aug 2010
Posts: 880
Received Thanks: 113
|
Okay danke, werde mir das morgen mal reinziehen
|
|
|
04/29/2011, 02:08
|
#4
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
ich hätte jetz einfach eine funktion wie diese geschrieben :s
Code:
Func ms2string($ms)
Local $min = $ms/60000
Return Int($min) & ' min '& Int(($min-Int($min))*60) & 'sec'
EndFunc
|
|
|
04/29/2011, 02:12
|
#5
|
elite*gold: 52
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
|
Ah Int wars hab die Func vergessen. So isses natürlich am besten.
|
|
|
04/29/2011, 02:19
|
#6
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
naja Int() schneidet ja quasi blos die nachkommastellen weg, und ist somit schneller als Floor().
Floor könnte natürlich genauso gut genutzt werden. auch Mod() wäre hier eine sinvolle mathematische funktion. war mir aber nicht sicher ob Mod() bei größeren zahlen wirklich effizient arbeitet, und habe deshlab einfach das ganze nur mit Int() gelöst =)
|
|
|
04/29/2011, 02:24
|
#7
|
elite*gold: 52
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
|
Jo klar. Aber meine Func da oben ist doch auch lustig. Meine Scripts sind halt für 64bit ausgelegt 32er würdens nicht schaffen :P
|
|
|
04/29/2011, 02:48
|
#8
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
du scheinst da einen kleinen fehler in dem script zu haben.
würde dir aber auch in dem falle empfehlen einmalig alles umzurechnen in sekunden, und diese dann zu dividieren =)
danach einfach wieder alles umrechnen in das gesuchte format
zb so:
Code:
Func divide($zeit1, $zeit2)
Local $t1 = StringSplit($zeit1, ':'), $t2 = StringSplit($zeit2, ':')
If $t1[0] <> 3 Or $t2[0] <> 3 Then Return False
Local $sec = ($t1[1]*3600 + $t1[2]*60 + $t1[3]) - ($t2[1]*3600 + $t2[2]*60 + $t2[3])
If $sec<0 Then $sec += 24*3600
Local $hour = Int($sec/3600)
Local $minute = Int(($sec-$hour*3600)/60)
Local $seconds = Int($sec-$hour*3600-$minute*60)
Return StringFormat('%02d:%02d:%02d', $hour, $minute, $seconds)
EndFunc
Edit:
Sry es wäre natürlich eig subtraktion und nicht division :s
|
|
|
04/29/2011, 02:58
|
#9
|
elite*gold: 52
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
|
Ui vielen Dank. Wollts sowieso nochmal neu machen.
Bin jetzt aber off muss heute wieder früh raus.
|
|
|
04/29/2011, 13:40
|
#10
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
zeit(in sekunden)/60 -> minuten
zeit(in sekunden)%60 -> sekunden
Warum so kompliziert? ~.~
|
|
|
04/29/2011, 14:19
|
#11
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
hatte ich doch oben schon geschrieben :s
weis nicht genau wie der pc modulo umsetzt, bin mir aber recht sicher das es eine iterative subtraktion ist.
wenn ich bereits dividiert habe, habe ich meinen gesuchten wert ja aber eigentlich bereits damit erhalten, und brauch nurnoch den ergebnis wert vom ganzen abziehen, was rein logisch deutlich effizienter wäre von der umsetzung her
|
|
|
05/01/2011, 11:35
|
#12
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
|
Du sprichst bei AutoIt über effizienz?
|
|
|
05/01/2011, 12:47
|
#13
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by MoepMeep
Du sprichst bei AutoIt über effizienz?
|
ja? :O
ich spreche imma von effizienz egal was ich mache
|
|
|
Similar Threads
|
Rechnung
01/17/2011 - AutoIt - 4 Replies
Servus Elitepvpers,
nachdem ich die einfacheren Rechnungen verstanden habe, wollte ich fragen, ob es auch möglich ist kompliziertere Rechnungen wie zb. 12te Wurzel aus 2 mal x zu rechnen?
so nach diesem Prinzip...:
$ergebnis=Addiere(2,3)
MsgBox(0,"Ergebnis","$a + $b addiert ergibt : "&$ergebnis)
Func Addiere($a,$b)
Return $a+$b
|
Rechnung Kriegen?
09/23/2010 - WarRock - 35 Replies
Hallo,
Ich hab bei Playspan ein offer Gemacht Maxdome da muss mann ja kontodaten und so eingeben und ich hab das mit fakrescript gemacht und ich hab die Ups gekriegt aber ich hab meine ip dann geändert ich hab mein router aus geschaltet und wieder eingeschaltet kann ich ne rechung nachhause kriegen?
|
rechnung per sms
08/18/2010 - Metin2 - 8 Replies
wenn man sich dr holt per sms bekommt man dann ne rechnung??
|
All times are GMT +1. The time now is 22:44.
|
|