Denke das es mit den Arrays (60) etwas zu tun hat...?!?
// Müllabfuhr für loxforum.com //AI1: Minuten Aktualisierung //AQ1: Stunden bis Restmüllabholung //AQ2: Stunden bis Biomüllabholung //AQ3: Stunden bis Altpapierabholung //AQ4: Stunden bis Leichtstoffabholung float sleeptime, now, restleft, bioleft, papierleft, leichtleft; int rest[60], bio[60], papier[60], leicht[60]; //Arrays. Falls es mehr Termine sind, einfach die Klammerwerte erhöhen int lenrest, lenbio, lenpapier, lenleicht, i, k, year, hourrest, hourbio, hourpapier, hourleicht, minuterest, minutebio, minutepapier, minuteleicht, remtimerest, remtimebio, remtimepapier, remtimeleicht; year = 2018; //Jahr, für den der Müllkalender gilt hourrest = 6; //Stunde, an der die Müllabfuhr üblicherweise kommt (Restmüll) hourbio = 6; //Stunde, an der die Müllabfuhr üblicherweise kommt (Biomüll) hourpapier = 6; //Stunde, an der die Müllabfuhr üblicherweise kommt (Altpapier) hourleicht = 6; //Stunde, an der die Müllabfuhr üblicherweise kommt (Leichtstoff) minuterest = 0; //Minute, an der die Müllabfuhr üblicherweise kommt ;-) minutebio = 0; //Minute, an der die Müllabfuhr üblicherweise kommt ;-) minutepapier = 0; //Minute, an der die Müllabfuhr üblicherweise kommt ;-) minuteleicht = 0; //Minute, an der die Müllabfuhr üblicherweise kommt ;-) remtimerest = 12; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)! remtimebio = 12; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)! remtimepapier = 12; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)! remtimeleicht = 12; //Stunden vor der Abholung bzgl. Erinnerung. IM STATUSBAUSTEIN ANPASSEN (oder umgekehrt)! while(TRUE) { sleeptime = 60*getinput(0); //Aktualisierungszeit in Sekunden now = getcurrenttime(); //aktuelle Zeit in Sekunden (seit 01.01.2018 0:00) //Daten der Restmüllabholung rest[0] = gettimeval(year-1, 22, hourrest, minuterest, 0, 1); //Letzter Abfuhrtermin des alten Jahres rest[1] = gettimeval(year, 1, 5, hourrest, minuterest, 0, 1); //ab hier für das neue Jahr (Variable "year") rest[2] = gettimeval(year, 1, 19, hourrest, minuterest, 0, 1); rest[3] = gettimeval(year, 2, 2, hourrest, minuterest, 0, 1); rest[4] = gettimeval(year, 2, 16, hourrest, minuterest, 0, 1); rest[5] = gettimeval(year, 3, 2, hourrest, minuterest, 0, 1); rest[6] = gettimeval(year, 3, 16, hourrest, minuterest, 0, 1); rest[7] = gettimeval(year, 3, 31, hourrest, minuterest, 0, 1); rest[8] = gettimeval(year, 4, 13, hourrest, minuterest, 0, 1); rest[9] = gettimeval(year, 4, 27, hourrest, minuterest, 0, 1); rest[10] = gettimeval(year, 5, 11, hourrest, minuterest, 0, 1); rest[11] = gettimeval(year, 5, 25, hourrest, minuterest, 0, 1); rest[12] = gettimeval(year, 6, 8, hourrest, minuterest, 0, 1); rest[13] = gettimeval(year, 6, 22, hourrest, minuterest, 0, 1); rest[14] = gettimeval(year, 7, 6, hourrest, minuterest, 0, 1); rest[15] = gettimeval(year, 7, 20, hourrest, minuterest, 0, 1); rest[16] = gettimeval(year, 8, 3, hourrest, minuterest, 0, 1); rest[17] = gettimeval(year, 8, 17, hourrest, minuterest, 0, 1); rest[18] = gettimeval(year, 8, 31, hourrest, minuterest, 0, 1); rest[19] = gettimeval(year, 9, 14, hourrest, minuterest, 0, 1); rest[20] = gettimeval(year, 9, 28, hourrest, minuterest, 0, 1); rest[21] = gettimeval(year, 10, 12, hourrest, minuterest, 0, 1); rest[22] = gettimeval(year, 10, 26, hourrest, minuterest, 0, 1); rest[23] = gettimeval(year, 11, 9, hourrest, minuterest, 0, 1); rest[24] = gettimeval(year, 11, 23, hourrest, minuterest, 0, 1); rest[25] = gettimeval(year, 12, 7, hourrest, minuterest, 0, 1); rest[26] = gettimeval(year, 12, 21, hourrest, minuterest, 0, 1); //Schleife Zählen der vorh. Arrayelemente beim Restmüll lenrest=0; for(k=0; k<(sizeof(rest)/sizeof(int)); k++) { if(rest[k] > 0) { lenrest++; } } //Daten der Biomüllabholung bio[0] = gettimeval(year-1, 29, hourbio, minutebio, 0, 1); //Letzter Abfuhrtermin des alten Jahres bio[1] = gettimeval(year, 1, 12, hourbio, minutebio, 0, 1); //ab hier für das neue Jahr (Variable "year") bio[2] = gettimeval(year, 1, 26, hourbio, minutebio, 0, 1); bio[3] = gettimeval(year, 2, 9, hourbio, minutebio, 0, 1); bio[4] = gettimeval(year, 2, 23, hourbio, minutebio, 0, 1); bio[5] = gettimeval(year, 3, 9, hourbio, minutebio, 0, 1); bio[6] = gettimeval(year, 3, 23, hourbio, minutebio, 0, 1); bio[7] = gettimeval(year, 4, 6, hourbio, minutebio, 0, 1); bio[8] = gettimeval(year, 4, 20, hourbio, minutebio, 0, 1); bio[9] = gettimeval(year, 5, 4, hourbio, minutebio, 0, 1); bio[10] = gettimeval(year, 5, 18, hourbio, minutebio, 0, 1); bio[11] = gettimeval(year, 6, 1, hourbio, minutebio, 0, 1); bio[12] = gettimeval(year, 6, 15, hourbio, minutebio, 0, 1); bio[13] = gettimeval(year, 6, 29, hourbio, minutebio, 0, 1); bio[14] = gettimeval(year, 7, 13, hourbio, minutebio, 0, 1); bio[15] = gettimeval(year, 7, 27, hourbio, minutebio, 0, 1); bio[16] = gettimeval(year, 8, 10, hourbio, minutebio, 0, 1); bio[17] = gettimeval(year, 8, 24, hourbio, minutebio, 0, 1); bio[18] = gettimeval(year, 9, 7, hourbio, minutebio, 0, 1); bio[19] = gettimeval(year, 9, 21, hourbio, minutebio, 0, 1); bio[20] = gettimeval(year, 10, 5, hourbio, minutebio, 0, 1); bio[21] = gettimeval(year, 10, 19, hourbio, minutebio, 0, 1); bio[22] = gettimeval(year, 11, 2, hourbio, minutebio, 0, 1); bio[23] = gettimeval(year, 11, 16, hourbio, minutebio, 0, 1); bio[24] = gettimeval(year, 11, 30, hourbio, minutebio, 0, 1); bio[25] = gettimeval(year, 12, 14, hourbio, minutebio, 0, 1); bio[26] = gettimeval(year, 12, 28, hourbio, minutebio, 0, 1); //Schleife Zählen der vorh. Arrayelemente beim Biomüll lenbio=0; for(k=0; k<(sizeof(bio)/sizeof(int)); k++) { if(bio[k] > 0) { lenbio++; } } //Daten der Papiermüllabholung papier[0] = gettimeval(year-1, 29, hourpapier, minutepapier, 0, 1); //Letzter Abfuhrtermin des alten Jahres papier[1] = gettimeval(year, 1, 26, hourpapier, minutepapier, 0, 1); //ab hier für das neue Jahr (Variable "year") papier[2] = gettimeval(year, 2, 23, hourpapier, minutepapier, 0, 1); papier[3] = gettimeval(year, 3, 23, hourpapier, minutepapier, 0, 1); papier[4] = gettimeval(year, 4, 20, hourpapier, minutepapier, 0, 1); papier[5] = gettimeval(year, 5, 18, hourpapier, minutepapier, 0, 1); papier[6] = gettimeval(year, 6, 15, hourpapier, minutepapier, 0, 1); papier[7] = gettimeval(year, 7, 13, hourpapier, minutepapier, 0, 1); papier[8] = gettimeval(year, 8, 10, hourpapier, minutepapier, 0, 1); papier[9] = gettimeval(year, 9, 7, hourpapier, minutepapier, 0, 1); papier[10] = gettimeval(year, 10, 5, hourpapier, minutepapier, 0, 1); papier[11] = gettimeval(year, 11, 2, hourpapier, minutepapier, 0, 1); papier[12] = gettimeval(year, 11, 30, hourpapier, minutepapier, 0, 1); papier[13] = gettimeval(year, 12, 28, hourpapier, minutepapier, 0, 1); //Schleife Zählen der vorh. Arrayelemente beim Papiermüll lenpapier=0; for(k=0; k<(sizeof(papier)/sizeof(int)); k++) { if(papier[k] > 0) { lenpapier++; } } //Daten der Leichtstoffabholung leicht[0] = gettimeval(year-1, 22, hourleicht, minuteleicht, 0, 1); //Letzter Abfuhrtermin des alten Jahres leicht[1] = gettimeval(year, 1, 19, hourleicht, minuteleicht, 0, 1); //ab hier für das neue Jahr (Variable "year") leicht[2] = gettimeval(year, 2, 16, hourleicht, minuteleicht, 0, 1); leicht[3] = gettimeval(year, 3, 16, hourleicht, minuteleicht, 0, 1); leicht[4] = gettimeval(year, 4, 13, hourleicht, minuteleicht, 0, 1); leicht[5] = gettimeval(year, 5, 11, hourleicht, minuteleicht, 0, 1); leicht[6] = gettimeval(year, 6, 8, hourleicht, minuteleicht, 0, 1); leicht[7] = gettimeval(year, 7, 6, hourleicht, minuteleicht, 0, 1); leicht[8] = gettimeval(year, 8, 3, hourleicht, minuteleicht, 0, 1); leicht[9] = gettimeval(year, 8, 31, hourleicht, minuteleicht, 0, 1); leicht[10] = gettimeval(year, 9, 28, hourleicht, minuteleicht, 0, 1); leicht[11] = gettimeval(year, 10, 26, hourleicht, minuteleicht, 0, 1); leicht[12] = gettimeval(year, 11, 23, hourleicht, minuteleicht, 0, 1); leicht[13] = gettimeval(year, 12, 21, hourleicht, minuteleicht, 0, 1); //Schleife Zählen der vorh. Arrayelemente beim Leichtstoffmüll lenleicht=0; for(k=0; k<(sizeof(leicht)/sizeof(int)); k++) { if(leicht[k] > 0) { lenleicht++; } } //Schleife Restmüll for(i=0; i<lenrest; i++) { restleft = (rest[i]-now)/3600; if(restleft >= 0) { setoutput(0,restleft); i = lenrest-1; } } //Schleife Biomüll for(i=0; i<lenbio; i++) { bioleft = (bio[i]-now)/3600; if(bioleft >= 0) { setoutput(1,bioleft); i = lenbio-1; } } //Schleife Papiermüll for(i=0; i<lenpapier; i++) { papierleft = (papier[i]-now)/3600; if(papierleft >= 0) { setoutput(2,papierleft); i = lenpapier-1; } } //Schleife Leichtstoff for(i=0; i<lenleicht; i++) { leichtleft = (leicht[i]-now)/3600; if(leichtleft >= 0) { setoutput(3,leichtleft); i = lenleicht-1; } } //Schleife zur Überprüfung, ob die Erinnerungsuhrzeit ansteht (innerhalb 1 Stunde), wenn ja: Sleeptime verringern. if((restleft<(remtimerest+1) && restleft>=(remtimerest)) || (bioleft<(remtimebio+1) && bioleft>=(remtimebio)) || (papierleft<(remtimepapier+1) && papierleft>=(remtimepapier)) || (leichtleft<(remtimeleicht+1) && leichtleft>=(remtimeleicht))) { sleeptime = 120; } sleeps(sleeptime); //Sleep-Wert in Sekunden, um die CPU zu schonen.. }
Kommentar