Ankündigung

Einklappen
Keine Ankündigung bisher.

Wertebreiche festlegen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wertebreiche festlegen

    Hallo,

    ich habe mich erst vor kurzem hier angemeldet und schon besteht die erste Frage.

    Kurz zum Hintergrund:

    Es soll eine Datum Hochrechnung gemacht werden.

    Die Hochrechnung des Datums habe ich schon lösen können, jetzt muss ich aber ein Werteberich festlegen, wann eine Lok zur nächsten Inspektion kommen muss und die Intervalle sind jede 1000 STD.

    So eine Lok, so kann ich es mir vorstellen, kann bestimmt 20.000 Betriebsstunden bekommen.

    So jetzt die Frage: Wie kann ich das lösen, das ein User eine Zahl Z.B. 2500 STD eingibt und mir direkt gesagt wird, dass die nächste Inspektion bei 3000STD ist.

    Habe schon überlegt das über eine if Schleife zu machen

    if($zahl <= 2000)
    {
    $zahl = 2000;
    }
    if($zahl > 2000)
    {
    $zahl = 3000;

    ,nimmt ja sehr viele Zeilen in Anspruch.

    Geht das denn auch kürzer????

    Ich hoffe es kann mir jemand helfen.

    Ich bedanke mich im voraus schon für die muhen die ihr euch macht.

  • #2
    Ich verstehe die Frage / das Problem nicht ... Was willst du genau abprüfen? Für mich machen die "wilden" IF-Statements keinen sinn ...
    Gruß,
    SebTM

    Kommentar


    • #3
      Hallo und willkommen im Forum.

      http://www.php.de/php-tipps-2008/484...er-finden.html
      Da ist deine Lösung mit drin
      [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
      [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

      Kommentar


      • #4
        Die Lok soll alle 1000 zur Inspektion.

        Wenn jetzt eine Lok schon 2500 Stunden gelaufen ist ( die Zahl gibt ein User ein), muss Sie bei 3000 Stunden wieder zur Inspektion.

        Ich würde es gerne wie folgt habe: Der User gibt eine entsprechende Zahl ein ( s.o. 2500 Stunden), die Schleife erkennt: Die Zahl liegt zwischen 2000 & 3000 und gibt mir die 3000 Als wert aus.

        Die soll natürlich mit allen zahlen gehen, ich denke bis 20.000 Stunden.

        Nur wenn ich das ganze über die if-Schleife laufen lasse, habe ich Hunderte von Zeilen verbraucht um die obenstehende Abfrage zu machen.

        Das ganze muss doch einfacher gehen oder???

        Kommentar


        • #5
          Vermute die DatePeriod class ist hier hilfreich:
          PHP-Code:
          $period = new DatePeriod(
            
          date_create('2014-12-1'),
            
          DateInterval::createFromDateString('+ 1000 hours'),
            
          4,
            
          DatePeriod::EXCLUDE_START_DATE);
          foreach(
          $period as $dateInspektion){
            echo 
          $dateInspektion->format('d.m.Y').'<br>';

          Code:
          11.01.2015
          22.02.2015
          05.04.2015
          16.05.2015

          Kommentar


          • #6
            https://eval.in/private/787bfc89d781a7

            Gleiches ist auch mit DateInterval möglich.
            [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

            Kommentar


            • #7
              Danke für die schnellen Antworten, ich werde es gleich mal ausprobieren.

              Werde natürlich bescheid geben wenn es funktioniert hat.

              Kommentar


              • #8
                So ich habe es alles mal ausprobiert.
                Leider funktioniert das nicht ganz so wie ich mir das vorstelle.

                Also die Idee von VPh mit dem error_reporting versteh ich nicht so ganz.

                Die Idee jspit ist ganz cool, leider läuft die Lok nur eine bestimmte Zeit am Tag und nicht 24 stunden am Stück.

                Die Idee von tr0y war die, die zum Erfolg geführt hat. Danke dafür!

                Natürlich auch ein Danke an die anderen, die sich die mühe gemacht haben eine Möglichkeit zu finden.

                Kommentar


                • #9
                  Ich hab nen Link gepostet, das worauf du geachtet hast ist die Signatur.
                  "nächstgrößeren Zehner finden" - sollte sich ja ziemlich einfach auf "nächstgrößeren Tausender finden" umstricken lassen.

                  PHP-Code:
                  $number 10;
                  $nextThousand 1000 ceil($number 1000);
                  echo 
                  $nextThousand
                  Code:
                  1000
                  Da ist natürlich keine Begrenzung zur 20000 drin... aber das wirkte zu willkürlich um von mir als tatsächliche Anforderung wahrgenommen zu werden... und wäre noch ergänzbar.

                  Was du mitnehmen kannst:
                  Suchfunktion ist gut
                  Links anklicken und Inhalt lesen ist gut
                  Falls du gepostete Lösungen nicht verstehst, frag lieber gleich nach was da passiert.
                  [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
                  [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

                  Kommentar


                  • #10
                    Das sollte auch hinhauen (für fast beliebige ganzzahlige $x und $n): (Solange es halt nicht aus dem Integer-Bereich rausläuft. Ist klar. $n kann nicht 0 sein.)

                    Code:
                    $n = 1000;
                    $y = $x + ($n - $x % $n);
                    Wenn $x glatt durch 1000 teilbar ist, ist $y allerdings $x.

                    Wenn $y in dem Fall $x + 1000 sein soll:

                    Code:
                    $n = 1000;
                    $y = (0 === $x % $n)
                            ? $x + $n
                            : $x + ($n - $x % $n);

                    Kommentar

                    Lädt...
                    X