Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: mit Uhrzeiten rechnen Kategorie: Programmierung (von ChristianS - 24.08.2011 21:02)
Als Antwort auf Re: mit Uhrzeiten rechnen von André H. - 24.08.2011 13:40
Ich nutze:
C-Control II Station, OSOPT V3.1
> 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.
> >
> >
> > function subTime(int time, int minutes) returns int
> > {
> >   minutes= (time%100) - minutes;
> >   return ((time/100 + minutes/60)%24)*100 + ((minutes*-1)%60);
> >  }
> >

>
> Für die Subtaktion brauchst Du einen Ansatz. Das einfachste ist, denen Zeitwert
> in einen Time-Serial umzuwandeln.
>
> function subTime(int time, int minutes) returns int
> {
>  time=(((time/100)*60 + (time%100) - minutes;
>  return (time/60)*100 + (time%60);
> }

>
> Genaugenommen ist das sogar die bessere Variante, auch für die Addition:
>
> function addTime(int time, int minutes) returns int
> {
>  time=((time/100)*60 + (time%100) + minutes;
>  return ((time/60)%24)*100 + (time%60);
> }

>
> 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:
>
> 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);
> }

>
> 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


    Antwort schreiben


Antworten:

Re: mit Uhrzeiten rechnen (von Rene Schulz - 23.12.2011 19:22)