[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    32

    Dezimalstunden addieren

    Kennt jemand in RPG (am besten free) eine Routine um Dezimalstunden (z.B. 7,75) zu einem Zeitmarkenfeld zu addieren?. Wie bekomme ich am einfachsten heraus, dass es sich dabei um 7 Stunden und 45 Minuten handelt?

    DANKE & GRUSS

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Hallo,

    du ermittelst als erstes die Stunden und als zweites die Minuten (0,75 * 60 / 100).

    Anschliessend addierst Du diese zu der Zeitmarke:

    PHP-Code:
     /Free
        ZeitMarke 
    +=   %Hours(%Int(DecZeit)) 
                     + %
    Minutes((DecZeit - %Int(DecZeit)) * 60 100)
     /
    End-Free 
    Ich hoffe der Code stimmt (ich habe z.Z. keinen Zugang zu einer iSeries)

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Dec 2004
    Beiträge
    42

    Question

    Zu diesem Thema wohl leicht off-topic, aber benutzt jemand wirklich diese kein-anderer-darf-meinen-code-lesen-abkürzungen wie a+=b ?

    Ich finde das zwar chic zum schnell programmieren, macht aber so eine Rechnung meine Meinung nach sehr schnell unübersichtlich.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.243
    In Free-RPG gibt es ein paar Abkürzungsmöglichkeiten:

    x = x + y => x += y
    x = x - y => x -= y
    x = x * y => x *= y
    x = x / y => x /= y
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    May 2002
    Beiträge
    1.121
    nicht nur im Free-Format. geht auch im herkömlichen Format ab R520 (wenn ich mich nicht irre)
    Code:
    Eval  x= x+ 1  ===>  Eval x += 1
    gruß ronald

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.875
    Zitat Zitat von NEich
    Zu diesem Thema wohl leicht off-topic, aber benutzt jemand wirklich diese kein-anderer-darf-meinen-code-lesen-abkürzungen wie a+=b ?

    Ich finde das zwar chic zum schnell programmieren, macht aber so eine Rechnung meine Meinung nach sehr schnell unübersichtlich.
    Früher haben RPG-Programmierer ja auch folgendes geschrieben und sich dabei keine Gedanken darüber gemacht:
    PHP-Code:
    C        ADD   B      A 
    Das war auch nicht übersichtlicher oder?
    In andren Programmiersprachen ist die Codierung += eigentlich Standard (z.B. JAVA oder C++) und wird auch häufig genutzt.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 4. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    Registriert seit
    Dec 2004
    Beiträge
    42
    Meine Frage zielt eher dahin, ob ihr das für sinnvoll haltet, nur weil es früher schon schlecht zu lesen war, muss man dies nicht unbedingt übernehmen.
    Ich denke es hat sich gezeigt, dass eine deutliche Anweisung a la
    a = a + 1
    auch anderen Programmieren genau sagt was hier gemacht wird, als ein
    a += 1

    Durch die Abkürzungen in der Arithmetik kommen in den anderen Programmiersprachen auch Konstrukte wie
    a = ++i * j++ zustande , die zwar ganz toll abkürzen, aber nicht wirklich sofort nachvollziehbar sind.

    Ich bin da lieber für klar und deutlich programmieren.

Similar Threads

  1. Time-Wert zu Timestamp addieren
    By GraueEminenz in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 20-09-06, 11:11
  2. Zeit zu einem Timestamp addieren
    By Peter Kosel in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 30-06-05, 14:22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •