Benedikt Hermann: Subtraktion

Hallo,

ich habe eine Zahlenreigen:

1, 2, 3, 4, ... 25, 26, 27

von einem beliebigem Punkt aus möchte ich immer die 17 subtrahieren. Wird der Wert aber kleiner als 1, soll bei der 27 angefangen werden.

Also Bspl.: der Punkt ist 15, dann wäre das Ergebniss 27.

Wie mache ich sowas?

  1. Huhu Benedikt

    z.B. so

    $n= 12;

    $s = $n>17 ? $n-17 : 27;

    Viele Grüße

    lulu

    1. $n= 12;

      $s = $n>17 ? $n-17 : 27;

      hmm... komm ich irgendwie nicht auf das richtige Ergebnis?!

      1. Huhu Benedikt

        jetzt habe ich, glaube ich zumindest ;-) , begriffen was Du
        machen möchtest.
        Evtl. hilft Dir folgendes

        for ($i=1;$i<90;$i++){
         $n= ($i % 27 )+1;
         printf('Tage seit dem Beginn %s  Notdienst hat %s <br>',$i,$n);
        }

        wobei $i die Differenz der Tage ist.

        Viele Grüße

        lulu

        1. for ($i=1;$i<90;$i++){
          $n= ($i % 27 )+1;
          printf('Tage seit dem Beginn %s  Notdienst hat %s <br>',$i,$n);
          }

          wobei $i die Differenz der Tage ist.

          Hmm, versteh ich irgendwie nicht und klappt auch nicht.

          Ich möchte wissen, welche Gruppe Notdienst hat. Gazu zähle ich erst alle vergangenen Tage im ganzen Jahr und rechne die dann %27 (Da es ja 27 Gruppen sind). So... nun würde die richtige Gruppe rauskommen, wenn am 1.1. des Jahres die Grupp 1 Notdienst hätte. Hat sie aber nicht. sondern erst 17 Tage nach dem 1.1. hat die Gruppe 1 das erste mal Notdienst.
          Desswegen möchte ich von der Zahl die bei dem Modolu Rechnung rauskommt die 17 abziehen.

          1. Huhu Benedikt

            Desswegen möchte ich von der Zahl die bei dem Modolu Rechnung rauskommt die 17 abziehen.

            hier noch ein Versuch

            $offset=15;
            for ($i=1;$i<366;$i++){
             $n= ( ($i+$offset) % 27 )+1;
             printf('%s. Tag im Jahr, Notdienst hat Gruppe %s <br>',$i,$n);
            }

            Viele Grüße

            lulu

            1. Huhu Benedikt

              sondern erst 17 Tage nach dem 1.1. hat die Gruppe 1 das erste mal Notdienst.

              ups, das hatte ich nicht ordentlich gelesen

              Also am 18.1 soll Gruppe 1 dran sein daher muss
              $offset 10 sein, und nicht 15.

              Viele Grüße

              lulu

              1. Huhu Benedikt

                das muss die Hitze sein ...

                9 klappt noch besser als 10

                Viele Grüße

                lulu

  2. Ähhhmm mal ganz ins Leere gestochert:

    $punkt1 = rand( 1 , 27 );
     if ($punkt1 < 18)
         $punkt2=27;
     else
         $punkt2-=17;

    Was genau wird denn das (rein Interessehalber)?
    Wenn die Funktion öfters läuft, mußt du noch den Befehl srand() vor rand() benutzen, damit du nicht immer denselben Wert erhälst.
    Das kann aber doch nicht so schwierig gewesen sein, oder doch?

    Gruß Goofy

    1. $punkt1 = rand( 1 , 27 );
      if ($punkt1 < 18)
           $punkt2=27;
      else
           $punkt2-=17;

      Nein, es soll dann von 27 abwärts gezählt werden!

      Was genau wird denn das (rein Interessehalber)?

      Ein Portal mit 24h Dienstleistern in München. Daort sollen dann auch immer die Apotheken aufgezeigt werden, die aktuell Notdienst haben. Die Apotheken sind in Gruppen aufgeteilt: 1,2,3,4,5...27. Jeden Tag hat die Gruppe mit dern nächst höheren Zahl Notdienst. Ist man bei 27 angelang, fägts wieder bei eins an.

      Kannst Di das Portal ja mal anschauen: www.muc24.de

      Bitte um FEEDBACK

      Gruß Goofy

  3. Hallo allerseits,

    aus dem Bauch und aus der Sonne:

    $i -= 17;
    $i < 1 ? $i = 27 - $i : $i;

    Ungetestet. ;)

    Gruss, Thoralf