Lösung zur Schaltjahrfrage
Ich bin:
METHOD is_leap_year. * Dieses folgende Coding bitte durch euren Wettbewerbsbeitrag ersetzen. * Dieses Coding gibt zwar für die 20 Testdaten das korrekte Eregebnis zurück * aber für die Testsuite mit 100 speziell ausgewählten Jahren, die hoffentlich * alle Sonderfälle und Fallstricke enthalten - ist das Ergebnis doch recht mau. * Hinweis: Das Eingabejahr ist garantiert eine POSITIVE Zahl. Also keine 0, keine negative Zahl und keine Kommazahl CASE iv_year. WHEN 2020 OR 2024 OR 2028 OR 2032 OR 2036. rv_is_leapyear = abap_true. WHEN OTHERS. rv_is_leapyear = abap_false. ENDCASE. ENDMETHOD.
Hier noch mal das komplette Programm zum Testen daheim
*&---------------------------------------------------------------------* *& Report ZSITHH_CHALLENGE_LEAP_YEAR *&---------------------------------------------------------------------* REPORT zsithh_challenge_leap_year. CLASS lcl_sithh_test_me DEFINITION FINAL. PUBLIC SECTION. METHODS: is_leap_year IMPORTING iv_year TYPE i " Das Eingabejahr ist garantiert eine POSITIVE Zahl. Also keine 0, keine negative Zahl# und keine Kommazahl RETURNING VALUE(rv_is_leapyear) TYPE abap_bool. ENDCLASS. DATA: gv_year TYPE i, go_test_me TYPE REF TO lcl_sithh_test_me, gv_is_leap_year TYPE abap_bool. END-OF-SELECTION. CREATE OBJECT go_test_me. DO 20 TIMES. gv_year = 2016 + sy-index. gv_is_leap_year = go_test_me->is_leap_year( gv_year ). IF gv_is_leap_year = abap_true. FORMAT COLOR 1. WRITE:/ 'Das Jahr', gv_year, 'ist ein Schaltjahr'. ELSEIF gv_is_leap_year = abap_false. FORMAT COLOR 2. WRITE:/ 'Das Jahr', gv_year, 'ist kein Schaltjahr'. ELSE. FORMAT COLOR 7. WRITE:/ 'Das Jahr', gv_year, ' ist verbuggt'. ENDIF. ENDDO. CLASS lcl_sithh_test_me IMPLEMENTATION. METHOD is_leap_year. * Dieses folende Coding bitte durch euren Wettbewerbsbeitrag ersetzen. * Dieses Coding gibt zwar für die 20 Testdaten das korrekte Eregebnis zurück * aber für die Testsuite mit 100 speziell ausgewählten Jahren, die hoffentlich * alle Sonderfälle und Fallstricke enthalten - ist das Ergebnis doch recht mau. * Hinweis: Das Eingabejahr ist garantiert eine POSITIVE Zahl. Also keine 0, keine negative Zahl und keine Kommazahl CASE iv_year. WHEN 2020 OR 2024 OR 2028 OR 2032 OR 2036. rv_is_leapyear = abap_true. WHEN OTHERS. rv_is_leapyear = abap_false. ENDCASE. ENDMETHOD. ENDCLASS.