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 / 161 / 38 / 51 ) »
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.
3184
Views
Algorithmus
von Studi » 22.02.2017 10:06 • Verfasst in ABAP® für Anfänger
8
Antw.
5206
Views
Algorithmus gesucht!!!
von cali » 19.09.2008 09:36 • Verfasst in ABAP® Core
0
Antw.
1819
Views
RSA-Algorithmus im ABAP-Code
von stefan76 » 05.10.2006 17:31 • Verfasst in ABAP® Core
2
Antw.
1783
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

FOR mit CORRESPONDING
vor 2 Tagen von sap_enthusiast 11 / 2462
Netzplan drucken
vor 2 Tagen von sap_enthusiast 2 / 542
SALV: Titel zu lang
vor 5 Tagen von ralf.wenzel 3 / 1114
Web Feature Services (WFS) im SAP
vor einer Woche von msfox 1 / 1661
WM: Transportauftrag quittieren - drucken
vor einer Woche von JHM 4 / 3618

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

FOR mit CORRESPONDING
vor 2 Tagen von sap_enthusiast 11 / 2462
Netzplan drucken
vor 2 Tagen von sap_enthusiast 2 / 542
SALV: Titel zu lang
vor 5 Tagen von ralf.wenzel 3 / 1114
Web Feature Services (WFS) im SAP
vor einer Woche von msfox 1 / 1661
WM: Transportauftrag quittieren - drucken
vor einer Woche von JHM 4 / 3618

Unbeantwortete Forenbeiträge

Web Feature Services (WFS) im SAP
vor einer Woche von msfox 1 / 1661
Erweiterung in ME51N/ME52N:
vor 4 Wochen von ABAPlerv 1 / 3960
Erweiterung in ME51N/ME52N:
vor 4 Wochen von ABAPlerv 1 / 3884