Page 1 of 1

pals

PostPosted: Tue Aug 19, 2003 2:28 pm
by Reiner4302
hi pals..
how to decrement a month in abap code..for example current month is august then how to get previous month in abap code...

alex

PostPosted: Wed Aug 20, 2003 9:38 am
by Emre397
Hi Alex,

try this my friend:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. DATA:          lv_datefield(15)      TYPE c,
  2.                lv_time_stmp TYPE crmt_date_timestamp_to.
  3.  
  4. DATA date_inv LIKE sy-datum.
  5.  
  6. CONVERT DATE sy-datum INTO TIME STAMP lv_time_stmp TIME ZONE sy-zonlo .
  7.  
  8. lv_datefield = lv_time_stmp.
  9.  
  10. IF NOT lv_datefield+4(2) = 12.
  11.   lv_datefield+5(1) = lv_datefield+5(1) + 1.
  12.   lv_datefield+4(2) = '01'.
  13.   lv_datefield(4) = lv_datefield(4) + 1.
  14.  
  15. lv_time_stmp = lv_datefield.
  16.  
  17. convert time stamp lv_time_stmp TIME ZONE sy-zonlo  into date date_inv.
  18.  
  19. WRITE: 'Before: ', sy-datum.
  20. WRITE: 'After: ', date_inv.
GeSHi ©


regards Azreal

PostPosted: Wed Aug 20, 2003 9:38 am
by Eleanor356
Hi alex,

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. *data
  2.   DATA: L_DATE LIKE SY-DATUM.
  3.   data month type t247-mnr.
  4. *calculate previous month
  5.   L_DATE = SY-DATLO.
  6.   MOVE '01' TO L_DATE+6(2).
  7.   L_DATE = L_DATE - 1.
  8.   month =   L_DATE+4(2).
  9. * get name
  10.   select single * from t247
  11.                         where spras = sy-langu
  12.                            and  mnr  = month.
  13.  
  14.    
GeSHi ©


kind regards
Andreas

PostPosted: Wed Aug 20, 2003 9:43 am
by Miriam4168
Hi Alex,

another one !

You can also try function module

HR_CALC_MONTH

it is documented and easy to use.