Re: mit Uhrzeiten rechnen Kategorie: Programmierung (von Rene Schulz - 23.12.2011 19:40) | ||
Als Antwort auf Re: mit Uhrzeiten rechnen von ChristianS - 23.08.2011 22:54 | ||
| ||
Hallo Christian und Andre, ich habe eben den Code gefunden und denke er könnte mir auch Helfen. Wo müsste man den Einfügen, wenn ich folgenden Thread habe? Mein Problem ist jeweils die Ausschaltzeit, Rel2 sollte nur für 45 Sekunden schlie�en und ich muss nun irgendwie 15 Sekunden von angegebener Zeit abziehen. thread regen { byte port; byte Rel; byte day, hour, min, second; long time; stports.init(); lcdext.init(); /*******************************************/ /******** ANSTEUERUNG LCD *************/ /*******************************************/ lcdext.line(2); lcdext.print(" TERRA: REGEN"); sleep 500; lcdext.clear(); /*******************************************/ /*********** Zeitschaltuhr Regen ***********/ /********Es wird jeden Tag geschaltet*******/ /*******************************************/ loop { min = system.minute(); wait system.minute() != min; time = system.hour()*100 + system.minute(); day = system.dow(); /**************************************************************/ /******** Zeitdefinition Stunden Minuten Sekunden *************/ /*** Ein 07:30:00 und 17:00:00 Aus 07:30:45 und 17:00:45 ******/ /**************************************************************/ if (time >= 0730 and time <= 0731) or (time >= 1700 and time <= 1701) stports.setRel(2,1); else stports.setRel(2,0); }; release; }; > ...funktioniert mit CC2-Code irgendwie nicht... > ChristianS Konntest Du den Fehler beheben? Danke Gru� Rene > > > > Hallo Christian, > > > > > > > > > funktioniert super, aber: Ich habe das mal in Excel simuliert. Wenn ich jetzt 2145 nehme > > > > > und rechne nun180min drauf, dann wäre das eigentlich 0045. Das Ergebnis ist > > > > > aber 2545 Da muss irgendwo noch der Tagesumbruch berücksichtig werden......ich probier' mal > > > > > mit %24 > > > > > > > > OK, den Tagesumbruch hatte ich vergessen. > > > > Mit dem mod 24 ist das natürlich gelöst: > > > > > > > > function addTime(int time, int minutes) returns int > > > > { > > > > minutes= (time%100) + minutes; > > > > return ((time/100 + minutes/60)%24)*100 + (minutes%60); > > > > } > > > > > > > > > > > > �brigens hätte das Ergebnis 2445 lauten müssen. 2545 wäre beim addieren > > > > von 3h etwas seltsam. :-) > > > > Das kann aber daran liegen, da� Excel rundet, was die CC2 eben nicht macht. > > > > Bei Excel müsstest Du gezielt eine Ganzzahldevision durchführen. > > > > > > > > MfG André H. > > > > > > Hallo Andre, > > > mit Ganzzahl hatte ich schon gerechnet, aber wahrscheinlich irgendwo nen Fehler drin gehabt. > > > Naja, auf jeden Fall nochmals BEsten Dank für die Unterstützung > > > > > > Gru�, > > > ChristianS. > > > > Hallo, > > ich noch mal. Jetzt möchte ich einfach eine beliebige Anzahl von Minuten abziehen. Ich habe mal > > versucht die Funktion umzubauen. In Excel scheint es zu funzen. > > > > > > function subTime(int time, int minutes) returns int > > { > > minutes= (time%100) - minutes; > > return ((time/100 + minutes/60)%24)*100 + ((minutes*-1)%60); > > } > > > > > > Gru�, > > ChristianS. > > ...funktioniert mit CC2-Code irgendwie nicht... > ChristianS | ||
Antwort schreiben Antworten: |