mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
lcl_time to global class #773
This commit is contained in:
parent
9585a54778
commit
860ff3b6df
65
src/utils/zcl_abapgit_time.clas.abap
Normal file
65
src/utils/zcl_abapgit_time.clas.abap
Normal file
|
@ -0,0 +1,65 @@
|
|||
CLASS zcl_abapgit_time DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
TYPES: ty_unixtime TYPE c LENGTH 16.
|
||||
|
||||
CLASS-METHODS get
|
||||
RETURNING VALUE(rv_time) TYPE ty_unixtime
|
||||
RAISING zcx_abapgit_exception.
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS: c_epoch TYPE datum VALUE '19700101'.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_TIME IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD get.
|
||||
|
||||
DATA: lv_i TYPE i,
|
||||
lv_tz TYPE tznzone,
|
||||
lv_utcdiff TYPE tznutcdiff,
|
||||
lv_utcsign TYPE tznutcsign.
|
||||
|
||||
|
||||
lv_i = sy-datum - c_epoch.
|
||||
lv_i = lv_i * 86400.
|
||||
lv_i = lv_i + sy-uzeit.
|
||||
|
||||
CALL FUNCTION 'TZON_GET_OS_TIMEZONE'
|
||||
IMPORTING
|
||||
ef_timezone = lv_tz.
|
||||
|
||||
CALL FUNCTION 'TZON_GET_OFFSET'
|
||||
EXPORTING
|
||||
if_timezone = lv_tz
|
||||
if_local_date = sy-datum
|
||||
if_local_time = sy-uzeit
|
||||
IMPORTING
|
||||
ef_utcdiff = lv_utcdiff
|
||||
ef_utcsign = lv_utcsign
|
||||
EXCEPTIONS
|
||||
conversion_error = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise( 'Timezone error' ).
|
||||
ENDIF.
|
||||
|
||||
CASE lv_utcsign.
|
||||
WHEN '+'.
|
||||
lv_i = lv_i - lv_utcdiff.
|
||||
WHEN '-'.
|
||||
lv_i = lv_i + lv_utcdiff.
|
||||
ENDCASE.
|
||||
|
||||
rv_time = lv_i.
|
||||
CONDENSE rv_time.
|
||||
rv_time+11 = lv_utcsign.
|
||||
rv_time+12 = lv_utcdiff.
|
||||
|
||||
ENDMETHOD. "get
|
||||
ENDCLASS.
|
18
src/utils/zcl_abapgit_time.clas.xml
Normal file
18
src/utils/zcl_abapgit_time.clas.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_ABAPGIT_TIME</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Time</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1199,7 +1199,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION.
|
|||
|
||||
METHOD receive_pack.
|
||||
|
||||
DATA: lv_time TYPE lcl_time=>ty_unixtime,
|
||||
DATA: lv_time TYPE zcl_abapgit_time=>ty_unixtime,
|
||||
lv_commit TYPE xstring,
|
||||
lt_objects TYPE lif_defs=>ty_objects_tt,
|
||||
lv_pack TYPE xstring,
|
||||
|
@ -1210,7 +1210,7 @@ CLASS lcl_git_porcelain IMPLEMENTATION.
|
|||
<ls_blob> LIKE LINE OF it_blobs.
|
||||
|
||||
|
||||
lv_time = lcl_time=>get( ).
|
||||
lv_time = zcl_abapgit_time=>get( ).
|
||||
|
||||
READ TABLE it_trees ASSIGNING <ls_tree> WITH KEY path = '/'.
|
||||
ASSERT sy-subrc = 0.
|
||||
|
|
|
@ -58,7 +58,7 @@ CLASS lcl_gui_page_debuginfo IMPLEMENTATION.
|
|||
ro_html->add( |<p>abapGit version: { lif_defs=>gc_abap_version }</p>| ).
|
||||
ro_html->add( |<p>XML version: { lif_defs=>gc_xml_version }</p>| ).
|
||||
ro_html->add( |<p>GUI version: { lv_gui_version }</p>| ).
|
||||
ro_html->add( |<p>LCL_TIME: { lcl_time=>get( ) }</p>| ).
|
||||
ro_html->add( |<p>LCL_TIME: { zcl_abapgit_time=>get( ) }</p>| ).
|
||||
ro_html->add( |<p>SY time: { sy-datum } { sy-uzeit } { sy-tzone }</p>| ).
|
||||
|
||||
ENDMETHOD. "render_debug_info
|
||||
|
|
|
@ -31,79 +31,6 @@ CLASS lcl_state IMPLEMENTATION.
|
|||
|
||||
ENDCLASS.
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_time DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_time DEFINITION FINAL.
|
||||
|
||||
PUBLIC SECTION.
|
||||
TYPES: ty_unixtime TYPE c LENGTH 16.
|
||||
|
||||
CLASS-METHODS get
|
||||
RETURNING VALUE(rv_time) TYPE ty_unixtime
|
||||
RAISING lcx_exception.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS: c_epoch TYPE datum VALUE '19700101'.
|
||||
|
||||
ENDCLASS. "lcl_time DEFINITION
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_time IMPLEMENTATION
|
||||
*----------------------------------------------------------------------*
|
||||
*
|
||||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_time IMPLEMENTATION.
|
||||
|
||||
METHOD get.
|
||||
|
||||
DATA: lv_i TYPE i,
|
||||
lv_tz TYPE tznzone,
|
||||
lv_utcdiff TYPE tznutcdiff,
|
||||
lv_utcsign TYPE tznutcsign.
|
||||
|
||||
|
||||
lv_i = sy-datum - c_epoch.
|
||||
lv_i = lv_i * 86400.
|
||||
lv_i = lv_i + sy-uzeit.
|
||||
|
||||
CALL FUNCTION 'TZON_GET_OS_TIMEZONE'
|
||||
IMPORTING
|
||||
ef_timezone = lv_tz.
|
||||
|
||||
CALL FUNCTION 'TZON_GET_OFFSET'
|
||||
EXPORTING
|
||||
if_timezone = lv_tz
|
||||
if_local_date = sy-datum
|
||||
if_local_time = sy-uzeit
|
||||
IMPORTING
|
||||
ef_utcdiff = lv_utcdiff
|
||||
ef_utcsign = lv_utcsign
|
||||
EXCEPTIONS
|
||||
conversion_error = 1
|
||||
OTHERS = 2.
|
||||
IF sy-subrc <> 0.
|
||||
lcx_exception=>raise( 'Timezone error' ).
|
||||
ENDIF.
|
||||
|
||||
CASE lv_utcsign.
|
||||
WHEN '+'.
|
||||
lv_i = lv_i - lv_utcdiff.
|
||||
WHEN '-'.
|
||||
lv_i = lv_i + lv_utcdiff.
|
||||
ENDCASE.
|
||||
|
||||
rv_time = lv_i.
|
||||
CONDENSE rv_time.
|
||||
rv_time+11 = lv_utcsign.
|
||||
rv_time+12 = lv_utcdiff.
|
||||
|
||||
ENDMETHOD. "get
|
||||
|
||||
ENDCLASS. "lcl_time IMPLEMENTATION
|
||||
|
||||
*----------------------------------------------------------------------*
|
||||
* CLASS lcl_convert DEFINITION
|
||||
*----------------------------------------------------------------------*
|
||||
|
|
46
src/zcx_abapgit_exception.clas.abap
Normal file
46
src/zcx_abapgit_exception.clas.abap
Normal file
|
@ -0,0 +1,46 @@
|
|||
class ZCX_ABAPGIT_EXCEPTION definition
|
||||
public
|
||||
inheriting from CX_STATIC_CHECK
|
||||
create public .
|
||||
|
||||
public section.
|
||||
|
||||
data TEXT type STRING .
|
||||
|
||||
methods CONSTRUCTOR
|
||||
importing
|
||||
!TEXTID like TEXTID optional
|
||||
!PREVIOUS like PREVIOUS optional
|
||||
!TEXT type STRING optional .
|
||||
class-methods RAISE
|
||||
importing
|
||||
!IV_TEXT type CLIKE
|
||||
raising
|
||||
ZCX_ABAPGIT_EXCEPTION .
|
||||
protected section.
|
||||
private section.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ZCX_ABAPGIT_EXCEPTION IMPLEMENTATION.
|
||||
|
||||
|
||||
method CONSTRUCTOR.
|
||||
CALL METHOD SUPER->CONSTRUCTOR
|
||||
EXPORTING
|
||||
TEXTID = TEXTID
|
||||
PREVIOUS = PREVIOUS
|
||||
.
|
||||
me->TEXT = TEXT .
|
||||
endmethod.
|
||||
|
||||
|
||||
METHOD raise.
|
||||
|
||||
RAISE EXCEPTION TYPE zcx_abapgit_exception
|
||||
EXPORTING
|
||||
text = iv_text.
|
||||
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
27
src/zcx_abapgit_exception.clas.xml
Normal file
27
src/zcx_abapgit_exception.clas.xml
Normal file
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCX_ABAPGIT_EXCEPTION</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Exception</DESCRIPT>
|
||||
<CATEGORY>40</CATEGORY>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
<DESCRIPTIONS>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCX_ABAPGIT_EXCEPTION</CLSNAME>
|
||||
<CMPNAME>CONSTRUCTOR</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>CONSTRUCTOR</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
</DESCRIPTIONS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
Loading…
Reference in New Issue
Block a user