Algorithmus

Getting started ... Alles für einen gelungenen Start.
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

Algorithmus

Beitrag von Studi (ForumUser / 24 / 4 / 0 ) »
Halli hallo,

ich habe ein Problem:
Und zwar brauch ich einen Algorithmus, der aufgrund der Uhrzeit entscheidet in welchem Zeitraum die jeweilige Uhrzeit liegt. Das heißt ich habe z.V. die Uhrzeit 07:56:32 dies liegt zwischen 7 und 8. So läuft das von 0-23 Uhr. Der zeitraum wird nämlich dann im Feldkatalog des ALV in einer Tabellenspalte angezeigt und später aufsummiert so das man ein balkendiagramm ermitteln kann.
Mein bisheriger Code war so: (Er funktioniert auch, nur ist es leider kein kurzer Algorithmus und mein Betreuer meint ich soll doch ein Algorithmus erstellen. leider habe ich keine Ahnung wie das geht)


LOOP AT gt_log ASSIGNING <ls_log>.

IF <ls_log>-uhrzeit > '000000' AND <ls_log>-uhrzeit < '005959'.
<ls_log>-spitzenzeiten = '0-1'.

ELSEIF <ls_log>-uhrzeit > '010000' AND <ls_log>-uhrzeit < '015959'.
<ls_log>-spitzenzeiten = '1-2'.

ELSEIF <ls_log>-uhrzeit > '020000' AND <ls_log>-uhrzeit < '025959'.
<ls_log>-spitzenzeiten = '2-3'.

ELSEIF <ls_log>-uhrzeit > '030000' AND <ls_log>-uhrzeit < '035959'.
<ls_log>-spitzenzeiten = '3-4'.

ELSEIF <ls_log>-uhrzeit > '040000' AND <ls_log>-uhrzeit < '045959'.
<ls_log>-spitzenzeiten = '4-5'.

ELSEIF <ls_log>-uhrzeit > '050000' AND <ls_log>-uhrzeit < '055959'.
<ls_log>-spitzenzeiten = '5-6'.

ELSEIF <ls_log>-uhrzeit > '060000' AND <ls_log>-uhrzeit < '065959'.
<ls_log>-spitzenzeiten = '6-7'.

ELSEIF <ls_log>-uhrzeit > '070000' AND <ls_log>-uhrzeit < '075959'.
<ls_log>-spitzenzeiten = '7-8'.

ELSEIF <ls_log>-uhrzeit > '080000' AND <ls_log>-uhrzeit < '085959'.
<ls_log>-spitzenzeiten = '8-9'.

ELSEIF <ls_log>-uhrzeit > '090000' AND <ls_log>-uhrzeit < '095959'.
<ls_log>-spitzenzeiten = '9-10'.

ELSEIF <ls_log>-uhrzeit > '100000' AND <ls_log>-uhrzeit < '105959'.
<ls_log>-spitzenzeiten = '10-11'.

ELSEIF <ls_log>-uhrzeit > '110000' AND <ls_log>-uhrzeit < '115959'.
<ls_log>-spitzenzeiten = '11-12'.

ELSEIF <ls_log>-uhrzeit > '120000' AND <ls_log>-uhrzeit < '125959'.
<ls_log>-spitzenzeiten = '12-13'.

ELSEIF <ls_log>-uhrzeit > '130000' AND <ls_log>-uhrzeit < '135959'.
<ls_log>-spitzenzeiten = '13-14'.

ELSEIF <ls_log>-uhrzeit > '140000' AND <ls_log>-uhrzeit < '145959'.
<ls_log>-spitzenzeiten = '14-15'.

ELSEIF <ls_log>-uhrzeit > '150000' AND <ls_log>-uhrzeit < '155959'.
<ls_log>-spitzenzeiten = '15-16'.

ELSEIF <ls_log>-uhrzeit > '160000' AND <ls_log>-uhrzeit < '165959'.
<ls_log>-spitzenzeiten = '16-17'.

ELSEIF <ls_log>-uhrzeit > '170000' AND <ls_log>-uhrzeit < '175959'.
<ls_log>-spitzenzeiten = '17-18'.

ELSEIF <ls_log>-uhrzeit > '180000' AND <ls_log>-uhrzeit < '185959'.
<ls_log>-spitzenzeiten = '18-19'.

ELSEIF <ls_log>-uhrzeit > '190000' AND <ls_log>-uhrzeit < '195959'.
<ls_log>-spitzenzeiten = '19-20'.

ELSEIF <ls_log>-uhrzeit > '200000' AND <ls_log>-uhrzeit < '205959'.
<ls_log>-spitzenzeiten = '20-21'.

ELSEIF <ls_log>-uhrzeit > '210000' AND <ls_log>-uhrzeit < '215959'.
<ls_log>-spitzenzeiten = '21-22'.

ELSEIF <ls_log>-uhrzeit > '220000' AND <ls_log>-uhrzeit < '225959'.
<ls_log>-spitzenzeiten = '22-23'.

ELSEIF <ls_log>-uhrzeit > '230000' AND <ls_log>-uhrzeit < '235959'.
<ls_log>-spitzenzeiten = '23-24'.

ENDIF.
ENDLOOP.

DANKE im Voraus!
Lg Alisa

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Algorithmus

Beitrag von IHe (Specialist / 141 / 35 / 45 ) »
Hallo Alisa,

was Du hierbei lernen sollst ist Abstraktion. Das heißt, es gibt ein beschriebenes Problem und Du musst es auf den wesentlichen rein logischen Zusammenhang reduzieren. Das ist eine grundsätzliche Vorgehensweise beim Entwickeln/Programmieren.

An Deinem Beispiel verdeutlicht: Du hast jetzt sehr viele Codezeilen und wenn Du genau hinschaust wirst Du doch bestätigen, dass die Codezeilen im Grunde immer wieder das gleiche machen. Die zwei Zeilen wiederholen sich immer wieder, nur mit leicht anderen Werten. Genau das musst Du so ändern, dass die Zeilen allgemein gültig für alle möglichen Werte (Uhrzeiten) sind.

Was passiert denn da genau? Du hast eine bestimmte Uhrzeit, die irgendeinen Wert haben kann. Die ersten zwei Zeichen zeigen die aktuelle Stunde an.

Als Ergebnis benötigst Du immer die aktuelle Stunde und die darauf folgende Stunde verbunden mit einem "-" Zeichen.

Bekommst Du es mit dieser Sichtweise nun selbst gelöst?

Grüße, Ingo
Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Seite 1 von 1

Vergleichbare Themen

11
Antw.
2933
Views
Algorithmus
von Studi » 22.02.2017 10:06 • Verfasst in ABAP® für Anfänger
8
Antw.
4531
Views
Algorithmus gesucht!!!
von cali » 19.09.2008 09:36 • Verfasst in ABAP® Core
0
Antw.
1528
Views
RSA-Algorithmus im ABAP-Code
von stefan76 » 05.10.2006 17:31 • Verfasst in ABAP® Core
2
Antw.
1670
Views
Eigene Funktion (Luhn-Algorithmus) schreiben
von roman1983 » 21.08.2008 09:05 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140