Calculate  date previous to given date range

i have a date range in zproggram as user input but in my calculation i want one day prior date to date-high for eg
user input is  1.08.2006 to 4.08.2006 but i need for further calculation date range as 1.08.2006  to 3.08.2006. can anybody help please . points will be given

Hi Sarabjit,
This is very simple..
But the place where you add this code matters. You can not add this to INITIALIZATION event as the user will change the value after this..
You cannot add this code to AT SELECTION-SCREEN events too.. as the user can execute them by pressing enter and then again can change the value.
You can add this code in START-OF-SELECTION event.
If your select option is s_date. A select option is an internal table. It has a sturcture as below:
Sign --> 1 Character --> I (Include), E(Exclude)
Option --> 2 Character --> EQ, BT, NE, LT, GT etc..
low --> Low value  --> 8 char in this case
High --> High Value --> 8 char in this case
So, at the run time, you will have a record as:
I BT 20070827 20070831
Now, you want that the high value should be 1 day before..
Code like this..
IF NOT s_date[] IS INITIAL.
LOOP AT s_date.
IF NOT s_date-high IS INITIAL.
s_date-high = s_date-high - 1.
MODIFY s_date.
ENDIF.
ENDLOOP.
ENDIF.
Thanks and Best Regards,
Vikas Bittera.
**Points for useful answers **

Similar Messages

  • Trying to calculate value based on rounding up and then calculate date range excluding weekends..

    Hi
    I am creating a simple design studion project request form where the user can enter how many photographs need to be ordered. I am calling this field 'NumImages'. Then once the data is entered, another field (I am calling this NumDaysImage) will be calculated based on the fact that no more than 5 photographs can be shot per day. So, 1-5  photos = 1 day. 6-10 photos = 2 days. 11-15 photos = 3 days etc. I do not need to calculate part days, so 6 photos is the same as 10 i.e. 2 days.
    Once I have calcuated 'NumDaysImage', I then need to calculate an end date called 'DateDue'. The start date is entered by the user in the field 'DateStart'.
    I know this is not going to be easy, but how can I calculate 'DateDue' based on a Mon-Fri working week, and ideally excluding UK public holidays?
    Also on the form is a value 'NumDays' that is the number of days for designing the brochure for the photos. This value I have calculated already, but it will need to be added to 'NumDaysImage' to get a total number of production days that is then used to calculate 'DateDue'.
    Any help will be greatly appreciated. Thanks.

    JavaScript has the Math.ceil method which rounds up a number to the next integer if it is not an integer.
    Dates are more complicated calculation as the starting date needs to be converted to a number and then one can calculate the ending date and test that date to see if is a Sunday or Saturday. Do intervening weekends add to the number of days for processing.

  • How to calculate a week & Month in given date range (not for sele-options)

    Hi ,
      I have defined 2 date parameters in sel-screen (Plz remember that date variable are not a SELECT-OPTIONS).  Now i want ot display week nos & monts in output.
          Ex: date1: 20080101 & date2: 20080229. then
                    weeks : 1, 2, 3,---9.
                    months: jan-08, feb-08.
    Plz help me with block of code or any FM.
    Regards,

    Hi Srikanth,
            The FM HR_99S_INTERVAL_BETWEEN_DATES   is doesn't existing, but there is a fm HR_MX_INTERVAL_BETWEEN_DATES but it returns no of Years & Days.
           But i found some FM which r returns no of months for given date range. but my requirement is, want to display the month no bw 1 to 12. (ex: dat1=15-03-2008 & dat2= 01-06-2008 then in month fields 03,04,05 & 06. ).
    Plz help me on this.
    -Regards.

  • Select Row immediately previous and following a date range

    I have a query which returns two values within a given date range (colA, colB). This works great. However, I also need to return (in a separate query) the entries immediately previous and following this current date range (same two values).
    I am more familiar with MySQL where the query would include an "Order by date desc limit 1" for the row previous to the original query or "Order by date asc limit 1" for the row following the original query.
    What is the best way to return these rows within Oracle?

    Hi,
    This is an example of a Top-N Query, where you want to pick N items (N=1 in this case) from the top of an ordered list.
    This problem is a little trickier, because you want to pick from two lists, the rows before the specieifed date range (in descending order) and the rows after the range.
    The easiest way might be a UNION of two separate queries, using WHERE ROWNUM = 1 in each one.
    The solution below is easier to generalize, e.g. if you want the first and last row from each department.
    WITH
    e     AS
         SELECT     empno, ename, hiredate
         ,     ROW_NUMBER () OVER
              ( ORDER BY     CASE
                             WHEN hiredate < TO_DATE ( '01-JAN-1982'
                                            , 'DD-MON-YYYY'
                                            ) -- Start of date range
                             THEN hiredate
                        END
                        DESC     NULLS LAST
              ) AS pre_num
         ,     ROW_NUMBER () OVER
              ( ORDER BY     CASE
                             WHEN hiredate > TO_DATE     ( '31-DEC-1982'
                                            , 'DD-MON-YYYY'
                                            ) -- End of date range
                             THEN hiredate
                        END
              ) AS post_num
         FROM     scott.emp
    SELECT     empno, ename, hiredate
    FROM     e
    WHERE     pre_num          = 1
    OR     post_num     = 1
    ;Results (last hire before 1982 and first hire after 1982):
         EMPNO ENAME      HIREDATE
          7788 SCOTT      19-APR-87
          7900 JAMES      03-DEC-81

  • Function module which could calculate the previous month's start date.....

    hi,
    I want a function module which could calculate the previous month's start date and end date...
    Say todays date is  like 29.05.2007(start date) it should return
    01.04.2007 and 30.04.2007...
    IS there any FM for this ... or how to go about this scenario ???
    thanks in advance
    samm

    See the below Logic :
    DATA :g_date(2) TYPE n,           " Date
          g_month(2) TYPE n,          " Month
          g_year(4) TYPE n ,          " Year
          g_bill_low(10) TYPE n,       " From date
          g_bill_high(10) TYPE n,      " To date
          g_month1(2) TYPE n,         " Month
          g_year1(4) TYPE n,          " Year
          g_date1(2) TYPE n,          " Date
          g_year2(4) TYPE n,          " Year
          g_datum LIKE sy-datum.      " System date
    RANGES : r_bdate  FOR vbrk-fkdat.             " Billing date
      g_datum = p_date + 10.
      g_month = g_datum+4(2).
      g_year = g_datum+0(4).
      IF g_month = 1.
        g_year = g_year - 1.
        g_month = 12.
        g_date = 1.
      ELSE.
        g_month = g_month - 1.
        g_date = 1.
      ENDIF.
    Passing the date to billing date-low
      CONCATENATE  g_year g_month g_date  INTO g_bill_low.
      r_bdate-low = g_bill_low.
      r_bdate-sign = 'I'.
      r_bdate-option = 'BT'.
      g_month1 = g_datum+4(2).
      g_year1 = g_datum+0(4).
      IF g_month1 = 1.
        g_year1 = g_year1 - 1.
        g_month1 = 12.
      ELSE.
        g_month1 = g_month1 - 1.
      ENDIF.
      CASE g_month1.
        WHEN 1.g_date1 = '31'.
        WHEN 3.g_date1 = '31'.
        WHEN 4.g_date1 = '30'.
        WHEN 5.g_date1 =  '31'.
        WHEN 6.g_date1 = '30'.
        WHEN 7.g_date1 = '31'.
        WHEN 8.g_date1 = '31'.
        WHEN 9.g_date1 = '30'.
        WHEN 10.g_date1 = '31'.
        WHEN 11.g_date1 = '30'.
        WHEN 12.g_date1 = '31'.
      ENDCASE.
      g_year2 = g_year1.
      IF g_month1 = 2.
        g_year2 = g_year2 MOD 4 .
        IF g_year2 = 0.
          g_date1 = 29.
        ELSE.
          g_date1 = 28.
        ENDIF.
      ENDIF.
    Passing the date to billing date-high
      CONCATENATE  g_year1  g_month1  g_date1 INTO g_bill_high.
      r_bdate-high = g_bill_high.
      APPEND r_bdate.
    Reward Points if it is helpful
    Thanks
    Seshu

  • Working hours of an employee between a given date range

    Hi Everyone,
    how to calculate working hours of an employee between a given date range
    Please anyone qive me some idea..
    Thanks in advance

    Hi Lathessh,
    Thanks for the reply here is the sample data. Actually we have two datetime field and i want to calculate the Ageing of an employee , by excluding of sunday and holiday between startdate and endDate.
    Ageing should be in hours.   Thanks
    StartDateTime
    EndDateTime
    HolidayList
    2/24/2014 11:55
    3/1/2014 16:45
    1/1/13 0:00
    2/24/2014 12:08
    2/28/2014 12:55
    1/14/13 0:00
    2/24/2014 16:16
    2/28/2014 15:20
    1/25/13 0:00
    2/14/2014 12:56
    3/4/2014 16:20
    3/27/13 0:00
    2/14/2014 12:56
    3/4/2014 16:20
    3/29/13 0:00
    2/14/2014 12:56
    3/4/2014 16:20
    4/24/13 0:00
    2/14/2014 12:56
    3/4/2014 16:20
    5/1/13 0:00
    2/26/2014 13:53
    3/4/2014 16:20
    8/9/13 0:00
    2/27/2014 12:13
    3/5/2014 13:05
    8/15/13 0:00
    3/3/2014 14:42
    3/5/2014 17:05
    8/20/13 0:00
    3/3/2014 14:42
    3/5/2014 17:05
    8/28/13 0:00
    3/3/2014 14:42
    3/5/2014 17:05
    9/18/13 0:00
    3/6/2014 12:28
    3/6/2014 17:55
    10/2/13 0:00
    3/6/2014 12:59
    3/7/2014 13:55
    10/16/13 0:00
    3/6/2014 14:37
    3/7/2014 11:15
    11/5/13 0:00
    3/6/2014 14:57
    3/7/2014 12:10
    11/15/13 0:00
    3/4/2014 17:21
    3/10/2014 15:55
    12/4/13 0:00
    3/4/2014 17:21
    3/10/2014 15:55
    12/25/13 0:00
    3/6/2014 12:08
    3/10/2014 14:10
    12/31/13 0:00
    3/6/2014 13:31
    3/10/2014 13:05
    1/1/14 0:00
    3/6/2014 13:14
    3/11/2014 13:20
    1/14/14 0:00
    3/6/2014 13:14
    3/11/2014 13:20
    3/17/14 0:00
    3/11/2014 14:29
    3/13/2014 11:20
    4/8/14 0:00
    3/11/2014 14:29
    3/13/2014 11:20
    4/14/14 0:00
    3/12/2014 12:56
    3/13/2014 11:45
    4/18/14 0:00
    3/12/2014 12:56
    3/13/2014 11:45
    5/1/14 0:00
    3/12/2014 14:02
    3/12/2014 18:10
    7/29/14 0:00
    3/12/2014 14:22
    3/12/2014 18:05
    8/15/14 0:00
    2/24/2014 16:49
    3/14/2014 12:10
    8/18/14 0:00
    2/24/2014 16:49
    3/14/2014 12:10
    8/29/14 0:00
    2/24/2014 16:49
    3/14/2014 12:10
    10/2/14 0:00
    2/24/2014 16:49
    3/14/2014 12:10
    10/3/14 0:00
    3/12/2014 11:31
    3/14/2014 15:55
    10/6/14 0:00
    3/12/2014 13:31
    3/15/2014 12:20
    10/23/14 0:00
    3/12/2014 15:31
    3/15/2014 11:10
    10/24/14 0:00
    3/12/2014 15:49
    3/14/2014 13:55
    12/25/14 0:00
    3/12/2014 16:19
    3/14/2014 15:05
    12/31/14 0:00

  • How to get XLR to show BPs with no transaction data for a given date range

    Hi -
    I am building an XLR report that does a comparison of net sales data across two periods for a given sales employee's BPs.
    The report has the row expansion:
    FACT BPA(*) SLP(SlpName = "ASalesPersonNameHere") ARDT(Code = "ARCreditMemo", "Invoice") Group by BPA.CardName
    and column expansions:
    FIG(SO_TaxDate = @StartDate:@EndDate)
    and
    FIG(SO_TaxDate = @StartDate2:@EndDate2)
    where @StartDate, @EndDate, @StartDate2, @EndDate2 are parameters that define the two ranges of dates.
    The column formulas are, from left to right:
    =ixDimGet("BPA", "CardName")
    =ixGet("SO_DocTotal")      <-- filtered by column expansion for first date range
    =ixGet("SO_DocTotal")      <-- filtered by column expansion for second date range
    The report works fine except for one problem, I would like it to include BPs for which no transaction occurred in either date range as well.
    Any help is greatly appreciated!
    Thanks,
    Lang Riley

    Really appreciate your feedback!  Those are good suggestions. I should have mentioned that I had already tried both those suggestions.
    Removing FACT on BPA in this case ends up returning all the BPs and not respecting the SLP(SlpName = "aName") part of the query. 
    Using **, i.e., * or #NULL, makes no change in the resulting data in this case.  I had thought that ** would be the solution, but it didn't change the outcome.  I still have BPs for which when their sales employee is used as the filter and they have no transactions for either date range, and yet they still do not appear. 
    I should further mention that the IXL query, as it now stands, does return BPs for which one of the periods has no data, just not both, and I have verified that applicable BPs with no transaction data for both periods do exist in my data set.  It seems that perhaps the IXL query needs to be restructured?  Please keep the suggestions coming including how this query might be restructured if necessary.

  • FM to calculate date month & year six months previous to the current date

    Hi All,
    Is there any function module or code to calculate date month & year six months previous to the current date.
    Thanks in advance.

    hi,
    try this
      data : date1 like vbak-erdat.
    data : q type numc3.
    selection-screen : begin of block blk2 with frame title text-001.
    parameters : n like q.
    selection-screen : end of block blk2.
    if n > 0.
    CALL FUNCTION 'CCM_GO_BACK_MONTHS'
             EXPORTING
               CURRDATE         = sy-datum
               BACKMONTHS       = n
           IMPORTING
              NEWDATE          = date1
    selection-screen: begin of block blk1 with frame title text-001.
    select-options :  s_date for vbak-erdat default 'NEWDATE'  to 'sy-datum' no-display.
    selection-screen : end of block blk1.
    write : date1.
    Reward with points if helpful.

  • Function module to calculate no of days between two date ranges

    hi experts,
    can some one please suggest a function module that can calculate no of days between specified date range.
    for example : if i enter date range between 26.02.2011 to 20.05.2011, then it should calculate no of days between these dates.
    Moderator message : Basic date questions not allowed. Read forum rules before posting. Thread locked.
    Edited by: Vinod Kumar on May 25, 2011 10:57 AM

    Hi,
    Please search SDN.. there are lots of posts for teh same.
    [http://wiki.sdn.sap.com/wiki/display/ABAP/FunctionModulerelatedonDate+calculations]

  • Get table partition name dynamically for given date range

    Dear All,
    Could you please tell me how to get the partition name dynamicaly for given date range ?
    Thank you.

    SQL> select table_name,
           partition_name,
           to_date (
              trim (
                 '''' from regexp_substr (
                              extractvalue (
                                 dbms_xmlgen.
                                 getxmltype (
                                    'select high_value from all_tab_partitions where table_name='''
                                    || table_name
                                    || ''' and table_owner = '''
                                    || table_owner
                                    || ''' and partition_name = '''
                                    || partition_name
                                    || ''''),
                                 '//text()'),
              'syyyy-mm-dd hh24:mi:ss')
              high_value_in_date_format
      from all_tab_partitions
    where table_name = 'SALES' and table_owner = 'SH'
    TABLE_NAME                     PARTITION_NAME                 HIGH_VALUE_IN_DATE_FORMAT
    SALES                          SALES_1995                     01-JAN-96               
    SALES                          SALES_1996                     01-JAN-97               
    SALES                          SALES_H1_1997                  01-JUL-97               
    SALES                          SALES_H2_1997                  01-JAN-98               
    SALES                          SALES_Q1_1998                  01-APR-98               
    SALES                          SALES_Q2_1998                  01-JUL-98               
    SALES                          SALES_Q3_1998                  01-OKT-98               
    SALES                          SALES_Q4_1998                  01-JAN-99               
    SALES                          SALES_Q1_1999                  01-APR-99               
    SALES                          SALES_Q2_1999                  01-JUL-99               
    SALES                          SALES_Q3_1999                  01-OKT-99               
    SALES                          SALES_Q4_1999                  01-JAN-00               
    SALES                          SALES_Q1_2000                  01-APR-00               
    SALES                          SALES_Q2_2000                  01-JUL-00               
    SALES                          SALES_Q3_2000                  01-OKT-00               
    SALES                          SALES_Q4_2000                  01-JAN-01               
    SALES                          SALES_Q1_2001                  01-APR-01               
    SALES                          SALES_Q2_2001                  01-JUL-01               
    SALES                          SALES_Q3_2001                  01-OKT-01               
    SALES                          SALES_Q4_2001                  01-JAN-02               
    SALES                          SALES_Q1_2002                  01-APR-02               
    SALES                          SALES_Q2_2002                  01-JUL-02               
    SALES                          SALES_Q3_2002                  01-OKT-02               
    SALES                          SALES_Q4_2002                  01-JAN-03               
    SALES                          SALES_Q1_2003                  01-APR-03               
    SALES                          SALES_Q2_2003                  01-JUL-03               
    SALES                          SALES_Q3_2003                  01-OKT-03               
    SALES                          SALES_Q4_2003                  01-JAN-04               
    28 rows selected.

  • Calculate number of times a name appears within a date range.

    Hello,
    I am actually using the iPad version but I assume the formula will be the same. Say I have a date in column A and a list of names in column B. What would the formula be to calculate the number of times a specific name appears in a date range.
    Thank you

    If C2 = the minimum date of the range
    C3= the maximum date of the range
    and you are looking for John as the name
    =COUNTIFS($A,">="&C2,$A,"<="&C3,B,"john")
    which counts cells where A>=the min date and A<=the max date and B="john"

  • SD pricing extract for given date range

    Hi,
    Is any one knows any FM where you can able to extract pricing for given date range.
    FM Pricing works for one date. I don't want to loop at this
    FM for the given date rage. It takes very long time.
    Thanks for any suggestion.
    Kind Regards
    Nir

    Hi,
    Is any one knows any FM where you can able to extract pricing for given date range.
    FM Pricing works for one date. I don't want to loop at this
    FM for the given date rage. It takes very long time.
    Thanks for any suggestion.
    Kind Regards
    Nir

  • Calculate Quarter within Date Range

    I have question regarding a date range.  I created a formula like so
    {SO_SalesOrderHistoryHeader.OrderDate} >=DateValue (2008,04,01) and {SO_SalesOrderHistoryHeader.OrderDate}<=DateValue (2008,06,30)
    I get my "True" which is fine, my problem is, what happens when it goes to the next year? Or I want to look at a previous year?  Do I have to go back and edit my formula? 
    Or is there a way to tell my formula to go by whatever year is entered?

    You can use the date range but the problem I forsee with it is which date are you going to use?  The start date or end date?  The choice also determines which date to use if the two dates span across years.  For example, if your date range is 2008-10-01 to 2009-03-31. 
    If the above situation will not occur, then you can use the dates of your date range thus:
    Modify your formula thus to use the year of the start date of your date range
    {SO_SalesOrderHistoryHeader.OrderDate} >=DateValue (year(minimum(?date range})) ,04,01) and {SO_SalesOrderHistoryHeader.OrderDate}<=DateValue (year(minimum(?date range})) ,06,30)
    Modify your formula thus to use the year of the end date of your date range
    {SO_SalesOrderHistoryHeader.OrderDate} >=DateValue (year(maximum(?date range})) ,04,01) and {SO_SalesOrderHistoryHeader.OrderDate}<=DateValue (year(maximum(?date range})) ,06,30)
    Hope this made things clear as mud

  • How to get the date range for a given fiscal period.

    Hi All,
    There is two fields (select options) on my selection screen
    1. Fiscal Year
    2. Fiscal Period.
    I just want the date range between the given year and period on selection screen.
    Thanks,
    Gaurav Mittal

    Check FM's FIRST_DAY_IN_PERIOD_GET and LAST_DAY_IN_PERIOD_GET.

  • Name of users of a particular Tcode for a given date range

    Hi experts,
    I am making an alv where inputs will be
    1> T_code(as parameter)
    2> Date Range(as Select options)
    I have to display the following fields:::
    1> User name
    2> Frequency of use the Tcode for the given Date range.
    Please give me the tables where I can get the relation of those fields.
    N.B. I know the transaction AL08 and SM04.But it won't solve my purpose.
    Thanx in advance,
    Sourav

    >
    SOURAV PAUL wrote:
    > Hi experts,
    > I am making an alv where inputs will be
    > 1> T_code(as parameter)
    > 2> Date Range(as Select options)
    by creating the report As per your this requirement you need not to create any Bulk on your SAP.Just use STAD/STAT transaction they are availabe for this purpose.
    and more you may track by security log audit by SM20 get these details.
    i'm worried about tables which sre storing these details.

Maybe you are looking for

  • I have songs in my library, but can't sync them to my nano

    Hey all! I really hope that somebody can help me. To be honest I am not sure what I did, but I now do not have any songs on my nano. I do however have A LOT of songs in my library, but it won't let me sync them to my ipod. "This is the message that I

  • Letter of credit and credit Mgmt

    hi experts i am working on this issue please through some light on this please,i am creating LC and when i create sales order i am using this LC document in billing tab financial documents,here my requirement is  when customer have LC sales order or

  • Switch data block - Do you want to save changes ?

    As soon as I choose a record from my love "ORDERS_LOV", I simply want to display a new canvas and switch data blocks. but why does the system keep asking me to save changes when I choose a record ??? Here's my code: IF SHOW_LOV('ORDERS_LOV') THEN    

  • RW-20004 no installs found for this host Error when installing Apps tier

    Hello: Trying to install 12.1.1 on a linux x64 OS. Following is my current OS Setup: 1) Have 2 Instances or RHEL 5 Update 4 x64 each named as follows: oalin12db.apps.local & oalin12mt.apps.local 2) Both have multi user setups as follows: a) user: ora

  • My CC account is still on trial after purchasing a Month to Month

    after login in may CC acount -> https://creative.adobe.com/ it still shows the blue UPGRADE button and a 2GB space even if under my PLAN INFORMATION shows: Account Status:    Month-to-month plan    All of my installed application is still on trial an