<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Calculating EXACT months between 2 dates in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704016#M1105259</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tested&lt;/P&gt;&lt;P&gt;this Fm FIMA_DAYS_AND_MONTHS_AND_YEARS&lt;/P&gt;&lt;P&gt;it seems to satisfy ur requirements as mentioned by u above&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Nov 2008 13:53:13 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-11-13T13:53:13Z</dc:date>
    <item>
      <title>Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704013#M1105256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does anyone know a function to do the equivalent to Oracle function "MONTHS_BETWEEN".  i.e. to work out the EXACT difference in decimals between 2 dates e.g 2.123432 could be a valid result.  Thanks,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 13:44:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704013#M1105256</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-13T13:44:48Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704014#M1105257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Use FM 'HR_99S_INTERVAL_BETWEEN_DATES'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Jayant&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 13:48:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704014#M1105257</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-13T13:48:39Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704015#M1105258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi try these&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;FIMA_DAYS_AND_MONTHS_AND_YEARS&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;HR_HK_DIFF_BT_2_DATES&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;regards  &lt;/P&gt;&lt;P&gt;kartik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 13:51:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704015#M1105258</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-13T13:51:22Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704016#M1105259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tested&lt;/P&gt;&lt;P&gt;this Fm FIMA_DAYS_AND_MONTHS_AND_YEARS&lt;/P&gt;&lt;P&gt;it seems to satisfy ur requirements as mentioned by u above&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 13:53:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704016#M1105259</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-13T13:53:13Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704017#M1105260</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please provide some sample test data as i am not getting any decimals?  Thanks,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 13:56:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704017#M1105260</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-13T13:56:32Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704018#M1105261</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;sorry for my above post. that was a mistake&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try HR_HK_DIFF_BT_2_DATES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it takes 3 import parameters &lt;STRONG&gt;date1&lt;/STRONG&gt; , &lt;STRONG&gt;date2&lt;/STRONG&gt; and &lt;STRONG&gt;output format&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt; give output format as &lt;STRONG&gt;04&lt;/STRONG&gt; i.e months with decimal&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;test data:&lt;/P&gt;&lt;P&gt;date1 = 2009/01/01&lt;/P&gt;&lt;P&gt;date2 = 2008/11/10&lt;/P&gt;&lt;P&gt;output_format = 04&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;result:&lt;/P&gt;&lt;P&gt; YEARS                           0.0000&lt;/P&gt;&lt;P&gt; MONTHS                             1.7562&lt;/P&gt;&lt;P&gt; DAYS                                 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;note:&lt;/P&gt;&lt;P&gt;&lt;U&gt;YF Output format text&lt;/U&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;01 Years with decimals&lt;/P&gt;&lt;P&gt;04 Months with decimals&lt;/P&gt;&lt;P&gt;07 Anniversary&lt;/P&gt;&lt;P&gt;08 Anniversary months&lt;/P&gt;&lt;P&gt;E1 Years with decimals&lt;/P&gt;&lt;P&gt;E4 Months with decimals&lt;/P&gt;&lt;P&gt;E7 Anniversary&lt;/P&gt;&lt;P&gt;E8 Anniversary months&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: kartik tarla on Nov 13, 2008 7:34 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 14:03:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704018#M1105261</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-13T14:03:18Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704019#M1105262</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;if you are not getting the decimals check the type of variable you are capturing the number of weeks&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it need to be of type p decimals 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;datA: lv_weeks type p decimals 4.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 14:05:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704019#M1105262</guid>
      <dc:creator>former_member156446</dc:creator>
      <dc:date>2008-11-13T14:05:37Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704020#M1105263</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Samir,&lt;/P&gt;&lt;P&gt;Here is the code for you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
REPORT  zcc_test .
data: v_days type VTBBEWE-ATAGE.
data: v_months type VTBBEWE-ATAGE.
data: v_year type VTBBEWE-ATAGE.

CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
  EXPORTING
    i_date_from          = '20081101'
*   I_KEY_DAY_FROM       =
    i_date_to            = '20081112'
*   I_KEY_DAY_TO         =
*   I_FLG_SEPARATE       = ' '
 IMPORTING
   E_DAYS               = v_days
   E_MONTHS             = v_months
   E_YEARS              = v_year
          .

write: / 'Days', v_days, 'Month', v_months, 'Year', v_year.
          .

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Chidanand&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 14:07:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704020#M1105263</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-13T14:07:01Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704021#M1105264</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No Problem.  However FM HR_HK_DIFF_BT_2_DATES doesnt seem to be available in our system when i try to search for it !  Any ideas why not - we are on SAP NetWeaver 2004s?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 14:12:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704021#M1105264</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-13T14:12:55Z</dc:date>
    </item>
    <item>
      <title>Re: Calculating EXACT months between 2 dates</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704022#M1105265</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;this is the code in that FM use it directly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local interface:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(DATE1) LIKE  P0001-BEGDA&lt;/P&gt;&lt;P&gt;*"     VALUE(DATE2) LIKE  P0001-BEGDA&lt;/P&gt;&lt;P&gt;*"     VALUE(OUTPUT_FORMAT) LIKE  T7HK2B-SCALC DEFAULT '01'&lt;/P&gt;&lt;P&gt;*"  EXPORTING&lt;/P&gt;&lt;P&gt;*"     VALUE(YEARS) LIKE  P0347-SCRYY&lt;/P&gt;&lt;P&gt;*"     VALUE(MONTHS) LIKE  P0347-SCRMM&lt;/P&gt;&lt;P&gt;*"     VALUE(DAYS) LIKE  P0347-SCRDD&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      INVALID_DATES_SPECIFIED&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  l_diff_years(2)      type  n, "Number of years counter&lt;/P&gt;&lt;P&gt;         l_diff_months(2)     type  n, "Number of months counter&lt;/P&gt;&lt;P&gt;         l_diff_days(2)       type  n, "Number of days counter&lt;/P&gt;&lt;P&gt;         p_diff_years(3)      type  p, "Number of years counter&lt;/P&gt;&lt;P&gt;         p_diff_months(3)     type  p, "Number of months counter&lt;/P&gt;&lt;P&gt;         p_diff_days(3)       type  p, "Number of days counter&lt;/P&gt;&lt;P&gt;         date_anni_months(1)  type  c,&lt;/P&gt;&lt;P&gt;         date_anni_years(1)   type  c,&lt;/P&gt;&lt;P&gt;         date_begda           type  d,&lt;/P&gt;&lt;P&gt;         date_endda           type  d,&lt;/P&gt;&lt;P&gt;         date_out             type  d,&lt;/P&gt;&lt;P&gt;         l_date_last1         type  d,&lt;/P&gt;&lt;P&gt;         l_date_last2         type  d,&lt;/P&gt;&lt;P&gt;         corresponding_date_in_year    type  d,&lt;/P&gt;&lt;P&gt;         corresponding_date_in_month   type  d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; data:   l_date3              type  d, "Diff bt 2 dates :Note  0361169&lt;/P&gt;&lt;P&gt;         l_calc_date          type  d, "Calculation date :Note  0361169&lt;/P&gt;&lt;P&gt;         l_total_number_days  type  p. "Total num of days :Note  0361169&lt;/P&gt;&lt;P&gt; data    l_temp_date          type  d. "Temp date  :Note 0368547&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if DATE2 is greater than DATE1 and if so, raise an exception.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if date2 &amp;gt; date1.&lt;/P&gt;&lt;P&gt;    raise invalid_dates_specified.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  date_begda = date2.&lt;/P&gt;&lt;P&gt;  date_endda = date1.&lt;/P&gt;&lt;P&gt;  date_out   = date2.                  "will be changed by routines&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Modification for Note 0361169&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add Block Begin&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_calc_date = date2.&lt;/P&gt;&lt;P&gt;  l_date3 = ( date1 + 1 ) - date2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the number of days isn't zero, subtract 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if l_date3+6(2) &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    l_date3+6(2) = l_date3+6(2) - 1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the number of months isn't zero, subtract 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if l_date3+4(2) &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    l_date3+4(2) = l_date3+4(2) - 1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the number of years isn't zero, subtract 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if l_date3+0(4) &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    l_date3+0(4) = l_date3+0(4) - 1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note 368547 delete begin:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the number of years different to the lower date (date2).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; l_calc_date&lt;EM&gt;0(4) = date2&lt;/EM&gt;0(4) + l_date3+0(4).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Subtract this modified date from the upper date (date1) and place&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the result into a packed field so the resultis displayed in only&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;days.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; l_total_number_days = ( date1 + 1 ) - l_calc_date.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note 368547 delete end.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add Block End : Note 0361169&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format the years, months and days based on the output_format.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  case output_format.&lt;/P&gt;&lt;P&gt;    when '01'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format: Years with decimals.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Modification for Note 0361169&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delete Block Begin&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     perform find_corresp_date_in_year&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             using    date_begda&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      date_endda&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             changing p_diff_years&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      corresponding_date_in_year.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     days   = date_endda - corresponding_date_in_year + 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     months = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     years = p_diff_years + days / days_in_year.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear days .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delete Block End : Note 0361169&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note 368547 add begin:&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      l_temp_date = date1.&lt;/P&gt;&lt;P&gt;      l_temp_date+4(4) = '0301'.&lt;/P&gt;&lt;P&gt;      l_temp_date = l_temp_date - 1.&lt;/P&gt;&lt;P&gt;      if l_calc_date+4(4) = '0229'.&lt;/P&gt;&lt;P&gt;        l_calc_date = l_calc_date + 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note 679872 liuyo 20031112&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       if l_temp_date+4(4) = '0229'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         l_calc_date = l_calc_date - 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      l_calc_date+0(4) = date2+0(4) + l_date3+0(4).&lt;/P&gt;&lt;P&gt;      l_total_number_days = ( date1 + 1 ) - l_calc_date.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note 679872 liuyo 20031112&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if l_temp_date+4(4) = '0229' and l_calc_date+4(4) = '0301'.&lt;/P&gt;&lt;P&gt;          l_total_number_days = l_total_number_days + 1.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note 368547 add end.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Modification for Note 0361169&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add Block Begin&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      years = ( l_date3+0(4) + ( l_total_number_days / days_in_year ) ).&lt;/P&gt;&lt;P&gt;      months = 0.&lt;/P&gt;&lt;P&gt;      days   = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add Block End : Note 0361169&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when '02'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format : Days.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      years  = 0.&lt;/P&gt;&lt;P&gt;      months = 0.&lt;/P&gt;&lt;P&gt;      days = date_endda - date_begda + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when '03'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format: Years and days.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform find_corresp_date_in_year&lt;/P&gt;&lt;P&gt;              using    date_begda&lt;/P&gt;&lt;P&gt;                       date_endda&lt;/P&gt;&lt;P&gt;              changing p_diff_years&lt;/P&gt;&lt;P&gt;                       corresponding_date_in_year.&lt;/P&gt;&lt;P&gt;      years = p_diff_years.&lt;/P&gt;&lt;P&gt;      months = 0.&lt;/P&gt;&lt;P&gt;      days   = date_endda - corresponding_date_in_year + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when '04'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format: months with decimals.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform find_corresp_date_in_year&lt;/P&gt;&lt;P&gt;              using    date_begda&lt;/P&gt;&lt;P&gt;                       date_endda&lt;/P&gt;&lt;P&gt;              changing p_diff_years&lt;/P&gt;&lt;P&gt;                       corresponding_date_in_year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      months = 0.&lt;/P&gt;&lt;P&gt;      perform find_corresp_date_in_month&lt;/P&gt;&lt;P&gt;              using corresponding_date_in_year&lt;/P&gt;&lt;P&gt;                    date_endda&lt;/P&gt;&lt;P&gt;              changing  months&lt;/P&gt;&lt;P&gt;                    corresponding_date_in_month.&lt;/P&gt;&lt;P&gt;      days = date_endda - corresponding_date_in_month + 1.&lt;/P&gt;&lt;P&gt;      years = 0.&lt;/P&gt;&lt;P&gt;      months = months&lt;/P&gt;&lt;P&gt;             + p_diff_years * months_in_year&lt;/P&gt;&lt;P&gt;             + days / days_in_month.&lt;/P&gt;&lt;P&gt;      days = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when '05'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format: Years, months and days.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform find_corresp_date_in_year&lt;/P&gt;&lt;P&gt;              using    date_begda&lt;/P&gt;&lt;P&gt;                       date_endda&lt;/P&gt;&lt;P&gt;              changing p_diff_years&lt;/P&gt;&lt;P&gt;                       corresponding_date_in_year.&lt;/P&gt;&lt;P&gt;      years = p_diff_years.&lt;/P&gt;&lt;P&gt;      months = 0.&lt;/P&gt;&lt;P&gt;      perform find_corresp_date_in_month&lt;/P&gt;&lt;P&gt;              using corresponding_date_in_year&lt;/P&gt;&lt;P&gt;                    date_endda&lt;/P&gt;&lt;P&gt;              changing  months&lt;/P&gt;&lt;P&gt;                    corresponding_date_in_month.&lt;/P&gt;&lt;P&gt;      days = date_endda - corresponding_date_in_month + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when '06'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format: Years and months.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      perform find_corresp_date_in_year&lt;/P&gt;&lt;P&gt;              using    date_begda&lt;/P&gt;&lt;P&gt;                       date_endda&lt;/P&gt;&lt;P&gt;              changing p_diff_years&lt;/P&gt;&lt;P&gt;                       corresponding_date_in_year.&lt;/P&gt;&lt;P&gt;      years = p_diff_years.&lt;/P&gt;&lt;P&gt;      months = 0.&lt;/P&gt;&lt;P&gt;      perform find_corresp_date_in_month&lt;/P&gt;&lt;P&gt;              using corresponding_date_in_year&lt;/P&gt;&lt;P&gt;                    date_endda&lt;/P&gt;&lt;P&gt;              changing  months&lt;/P&gt;&lt;P&gt;                    corresponding_date_in_month.&lt;/P&gt;&lt;P&gt;      perform last_day_in_month(sapfp500) using date_endda&lt;/P&gt;&lt;P&gt;                                                l_date_last1.&lt;/P&gt;&lt;P&gt;      if     date_endda = l_date_last1&lt;/P&gt;&lt;P&gt;         and corresponding_date_in_month+6(2) = '01'.&lt;/P&gt;&lt;P&gt;        months = months + 1.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        days = date_endda - corresponding_date_in_month + 1.&lt;/P&gt;&lt;P&gt;        months = months + days / days_in_month.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      days = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when '07'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format : Anniversary years&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      p_diff_years    = date_endda+0(4) - date_begda+0(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      perform check_anni_years using    date_begda&lt;/P&gt;&lt;P&gt;                                        date_endda&lt;/P&gt;&lt;P&gt;                               changing date_anni_years.&lt;/P&gt;&lt;P&gt;      if date_anni_years = 'Y'.&lt;/P&gt;&lt;P&gt;        p_diff_years = p_diff_years + 1.&lt;/P&gt;&lt;P&gt;      elseif p_diff_years &amp;gt; 0.&lt;/P&gt;&lt;P&gt;        perform day_plus_years(sapfp500) using  date_begda&lt;/P&gt;&lt;P&gt;                                                p_diff_years&lt;/P&gt;&lt;P&gt;                                                date_out.&lt;/P&gt;&lt;P&gt;        date_out = date_out - 1.       "give end date of anni. mon&lt;/P&gt;&lt;P&gt;        if date_endda &amp;lt;= date_out.&lt;/P&gt;&lt;P&gt;          p_diff_years = p_diff_years - 1.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      years  = p_diff_years.&lt;/P&gt;&lt;P&gt;      months = 0.&lt;/P&gt;&lt;P&gt;      days   = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when '08'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Format : Anniversary months&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      p_diff_years    = date_endda+0(4) - date_begda+0(4).&lt;/P&gt;&lt;P&gt;      p_diff_months   = date_endda+4(2) - date_begda+4(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if p_diff_years &amp;gt; 0.&lt;/P&gt;&lt;P&gt;        p_diff_months = p_diff_years * months_in_year&lt;/P&gt;&lt;P&gt;                      + p_diff_months.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      perform check_anni_months using    date_begda&lt;/P&gt;&lt;P&gt;                                         date_endda&lt;/P&gt;&lt;P&gt;                                changing date_anni_months.&lt;/P&gt;&lt;P&gt;      if date_anni_months = 'Y'.&lt;/P&gt;&lt;P&gt;        p_diff_months = p_diff_months + 1.&lt;/P&gt;&lt;P&gt;      elseif p_diff_months &amp;gt; 0.&lt;/P&gt;&lt;P&gt;        perform day_plus_months(sapfp500) using date_begda&lt;/P&gt;&lt;P&gt;                                                p_diff_months&lt;/P&gt;&lt;P&gt;                                                date_out.&lt;/P&gt;&lt;P&gt;        perform last_day_in_month(sapfp500) using date_begda&lt;/P&gt;&lt;P&gt;                                                 l_date_last1.&lt;/P&gt;&lt;P&gt;        perform last_day_in_month(sapfp500) using date_endda&lt;/P&gt;&lt;P&gt;                                                 l_date_last2.&lt;/P&gt;&lt;P&gt;        date_out = date_out - 1.       "give end date of anni. mon&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        if l_date_last1&lt;EM&gt;6(2) = l_date_last2&lt;/EM&gt;6(2)." 30 = 30  OR 31 =31&lt;/P&gt;&lt;P&gt;          if date_endda &amp;lt;= date_out.&lt;/P&gt;&lt;P&gt;            p_diff_months = p_diff_months - 1.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        elseif l_date_last1&lt;EM&gt;6(2) &amp;gt; l_date_last2&lt;/EM&gt;6(2).&lt;/P&gt;&lt;P&gt;          if date_begda&lt;EM&gt;6(2) = l_date_last1&lt;/EM&gt;6(2)&lt;/P&gt;&lt;P&gt;              and date_endda&lt;EM&gt;6(2) = l_date_last2&lt;/EM&gt;6(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            if  date_endda &amp;gt; date_out&lt;/P&gt;&lt;P&gt;               and date_begda&lt;EM&gt;6(2) ne l_date_last1&lt;/EM&gt;6(2)&lt;/P&gt;&lt;P&gt;                and date_endda&lt;EM&gt;6(2) eq l_date_last2&lt;/EM&gt;6(2) .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            p_diff_months = p_diff_months - 1.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;note 496952&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;            elseif date_endda &amp;lt;= date_out.&lt;/P&gt;&lt;P&gt;              p_diff_months = p_diff_months - 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        else.                          " l_date_last1 &amp;lt; l_date_last2.&lt;/P&gt;&lt;P&gt;          if date_begda&lt;EM&gt;6(2) = l_date_last1&lt;/EM&gt;6(2)&lt;/P&gt;&lt;P&gt;              and date_endda&lt;EM&gt;6(2) = l_date_last2&lt;/EM&gt;6(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            if  date_endda &amp;gt; date_out&lt;/P&gt;&lt;P&gt;                and date_begda&lt;EM&gt;6(2) = l_date_last1&lt;/EM&gt;6(2)&lt;/P&gt;&lt;P&gt;                and date_endda&lt;EM&gt;6(2) ne l_date_last2&lt;/EM&gt;6(2) .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            p_diff_months = p_diff_months - 1.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;note 496952  ( for the case, from 27.02 to 27.03 is 1 month,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*but 28.02 to 28.03 is not one month&lt;/P&gt;&lt;P&gt;            elseif  date_endda &amp;lt;= date_out.&lt;/P&gt;&lt;P&gt;              p_diff_months = p_diff_months - 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      years  = 0.&lt;/P&gt;&lt;P&gt;      months = p_diff_months.          "assign the # of anni month.&lt;/P&gt;&lt;P&gt;      days   = 0.&lt;/P&gt;&lt;P&gt;    when others.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Format: Others.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      years  = 0.&lt;/P&gt;&lt;P&gt;      months = 0.&lt;/P&gt;&lt;P&gt;      days   = 0.&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Nov 2008 14:16:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/calculating-exact-months-between-2-dates/m-p/4704022#M1105265</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-11-13T14:16:58Z</dc:date>
    </item>
  </channel>
</rss>

