Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > Hallo Christian, > > > > > 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. > > > > > > <code> > > > function subTime(int time, int minutes) returns int > > > { > > > minutes= (time%100) - minutes; > > > return ((time/100 + minutes/60)%24)*100 + ((minutes*-1)%60); > > > } > > > </code> > > > > Für die Subtaktion brauchst Du einen Ansatz. Das einfachste ist, denen Zeitwert > > in einen Time-Serial umzuwandeln. > > <code> > > function subTime(int time, int minutes) returns int > > { > > time=(((time/100)*60 + (time%100) - minutes; > > return (time/60)*100 + (time%60); > > }</code> > > > > Genaugenommen ist das sogar die bessere Variante, auch für die Addition: > > <code> > > function addTime(int time, int minutes) returns int > > { > > time=((time/100)*60 + (time%100) + minutes; > > return ((time/60)%24)*100 + (time%60); > > }</code> > > > > Hier kannst Du auch negative Werte angeben, so daß nur eine Funktion benötigt wird. > > Allerdings gibt's noch ein kleines Problem. Den Tageswechsel bei einer Subtraktion. > > Wenn Du nun von 0:30 Uhr 60 Minuten abziehst, erhälst Du -30 statt 23:30. > > Hier kommt man um eine If-Abfrage (fast) nicht herum: > > <code> > > function addTime(int time, int minutes) returns int > > { > > time=((time/100)*60 + (time%100) + minutes; > > if time<0 time=1440+time; > > return ((time/60)%24)*100 + (time%60); > > }</code> > > > > Man kann natürlich immer 1440 Minuten hinzuaddieren. Dann spart man > > sich die If-Abfrage. Durch die Moduludivision werden diese ggf. wieder ausgefiltert. > > > > MfG André H. > > Hallo André, > Die Lösung mit nur einer Funktion ist klasse und funktioniert super. Besten Dank für die > ausführlichen Erläuterungen. Ich glaub´ jetzt habe ich es verstanden. > Jetzt kann ich mich dem nächsten Problem stellen.... > > PS: Eine Klammer hinter dem Gleichheitszeichen ist zu viel :-) > > Gruß, > ChristianS