<?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: Looking for shortest date differences in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Looking-for-shortest-date-differences/m-p/309107#M66461</link>
    <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;Thank you for reading my mind and providing me exactly what I was looking for.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 03 Nov 2016 18:23:21 GMT</pubDate>
    <dc:creator>DeepakSwain</dc:creator>
    <dc:date>2016-11-03T18:23:21Z</dc:date>
    <item>
      <title>Looking for shortest date differences</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-for-shortest-date-differences/m-p/309088#M66452</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am looking for the shortest positive date difference. &amp;nbsp;But if the date difference value is negative and is smaller than shortest postive date difference then I want the negative difference .&lt;/P&gt;&lt;P&gt;In other word, out of the following date differences: 5, 2, -3: I want to flag 2 &amp;nbsp;[as 2 is shortest positive and is less than (-)3]&lt;/P&gt;&lt;P&gt;whereas&amp;nbsp;&lt;SPAN&gt;out of the following date differences: 5, 4, -3: I want to flag -3 [as 4 is shortest but is more than (-)3 ] .&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am having difficult at my final step of my SAS code.&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test1;
input id  date1 $9. date2 $9.  ;
cards;
1 11012016 13012016 
1 11012016 15012016
1 11012016 10012016
1 11012016 11012016
2 11012016 20012016
2 11012016 15012016
2 11012016 16012016
2 11012016 08012016

;
run;


data test2;
set test1 (rename= (date1=date3 date2=date4));
date1=input(put(date3, 8.), ddmmyy8.);
date2=input(put(date4, 8.), ddmmyy8.);
format date1 date2 date9.;
date_diff=intck('DAY', date1, date2);
run;

proc sort data =test2 ; by id date_diff; run;


&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Can somebody help me with this. Thank you in advance for your kind reply.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Nov 2016 16:46:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-for-shortest-date-differences/m-p/309088#M66452</guid>
      <dc:creator>DeepakSwain</dc:creator>
      <dc:date>2016-11-03T16:46:57Z</dc:date>
    </item>
    <item>
      <title>Re: Looking for shortest date differences</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-for-shortest-date-differences/m-p/309097#M66454</link>
      <description>&lt;P&gt;As sas dates are the days past '01JAN1960' you don't need the INTCK function but just DATE2-DATE1 to get the gap days;&lt;/P&gt;
&lt;P&gt;In oredre to get tha absolute minimum value use ABS function:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token procnames"&gt;data&lt;/SPAN&gt; test1&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token keyword"&gt;input&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;id&lt;/SPAN&gt;  date1 &lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;9&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; date2 &lt;SPAN class="token punctuation"&gt;$&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;9&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt;  &lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="token datalines"&gt;&lt;SPAN class="token keyword"&gt;cards&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;SPAN class="token data string"&gt;
1 11012016 13012016 
1 11012016 15012016
1 11012016 10012016
1 11012016 11012016
2 11012016 20012016
2 11012016 15012016
2 11012016 16012016
2 11012016 08012016

&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;SPAN class="token procnames"&gt;run&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/CODE&gt;data test2;&lt;BR /&gt; set test1;&lt;BR /&gt;     date_diff = abs(date2 - date1);&lt;BR /&gt;     &lt;SPAN class="token procnames"&gt;format&lt;/SPAN&gt; date1 date2 date9&lt;SPAN class="token punctuation"&gt;.;&lt;BR /&gt;&lt;/SPAN&gt;run;&lt;BR /&gt;&lt;BR /&gt;you can display in the log the line of minimum date_diff by:&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;PRE class=" language-sas"&gt;data test2;&lt;BR /&gt; set test1 end=eof;&lt;BR /&gt;     retain min_diff  n_diff;&lt;BR /&gt;     date_diff = abs(date2 - date1);&lt;BR /&gt;     &lt;SPAN class="token procnames"&gt;format&lt;/SPAN&gt; date1 date2 date9&lt;SPAN class="token punctuation"&gt;.;&lt;BR /&gt;     if _N_ = 1 then do; min_diff = date_diff; n_diff=1; end;&lt;BR /&gt;     else do; min_diff = min(min_diff, date_diff); n_diff = _N_; end;&lt;BR /&gt;&lt;BR /&gt;     if eof then put: "&amp;gt;&amp;gt;&amp;gt; Minimun date_dif is in row " n_diff;&lt;BR /&gt;run;&lt;BR /&gt;&lt;BR /&gt;      &lt;BR /&gt;&lt;/SPAN&gt;run;&lt;/PRE&gt;
&lt;PRE class=" language-sas"&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Nov 2016 18:18:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-for-shortest-date-differences/m-p/309097#M66454</guid>
      <dc:creator>Shmuel</dc:creator>
      <dc:date>2016-11-03T18:18:36Z</dc:date>
    </item>
    <item>
      <title>Re: Looking for shortest date differences</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-for-shortest-date-differences/m-p/309099#M66456</link>
      <description>&lt;P&gt;Can you show what you actually want for output? "Flag" can mean different things to different people. Do want to ADD a variable or select records or something else?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also I believe that what you are asking for with:&lt;/P&gt;
&lt;P&gt;"&amp;nbsp;am looking for the shortest positive date difference. &amp;nbsp;But if the date difference value is negative and is smaller than shortest postive date difference then I want the negative difference ."&lt;/P&gt;
&lt;P&gt;Is the smallest absolute value of the difference&amp;nbsp;&amp;nbsp;&amp;nbsp; ABS(3-5) = ABS(-2) = 2.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test1;
   informat id best4. date1 date2 ddmmyy10.;
   format date1 date2 date9.;
   input id  date1 date2  ;
   date_diff=abs(intck('DAY', date1, date2));

cards;
1 11012016 13012016 
1 11012016 15012016
1 11012016 10012016
1 11012016 11012016
2 11012016 20012016
2 11012016 15012016
2 11012016 16012016
2 11012016 08012016
;
run;

proc sort data=test1;
   by id date_diff;
run;

data want;
   set test1;
   by id date_diff;
   flag = (first.id);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 03 Nov 2016 17:54:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-for-shortest-date-differences/m-p/309099#M66456</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2016-11-03T17:54:19Z</dc:date>
    </item>
    <item>
      <title>Re: Looking for shortest date differences</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Looking-for-shortest-date-differences/m-p/309107#M66461</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;Thank you for reading my mind and providing me exactly what I was looking for.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Nov 2016 18:23:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Looking-for-shortest-date-differences/m-p/309107#M66461</guid>
      <dc:creator>DeepakSwain</dc:creator>
      <dc:date>2016-11-03T18:23:21Z</dc:date>
    </item>
  </channel>
</rss>

