<?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: Day difference in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Day-difference/m-p/179209#M34226</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1. Merge the files together so that you have the following on the same row: acctno date_initial date_expand date_final.&lt;/P&gt;&lt;P&gt;2. In a data step, create two sets of arrays day1_e to day5_e and same for final, initialize to zero values.&lt;/P&gt;&lt;P&gt;3. Calculate the difference between dates from step #1 as and increment to 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;diff1=date_expand-date_initial;&lt;/P&gt;&lt;P&gt;if diff1&amp;gt;0 then date_array_e(diff1)=1; &lt;/P&gt;&lt;P&gt;diff2 = date_final-date_initial;&lt;/P&gt;&lt;P&gt;if diff2&amp;gt;0 then date_array_f(diff2)=1;&lt;/P&gt;&lt;P&gt;If diff is less than zero can exit the step. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Apr 2014 17:56:14 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2014-04-14T17:56:14Z</dc:date>
    <item>
      <title>Day difference</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Day-difference/m-p/179208#M34225</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;initial has two varibles acct no and date&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;3713&amp;nbsp; 20140323&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;3713&amp;nbsp; 20140325&lt;/P&gt;&lt;P&gt;expand has two variables acct no and date&lt;/P&gt;&lt;P&gt;3713&amp;nbsp; 20140324&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;final has two varibles acct no and date&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;3713&amp;nbsp; 20140324&lt;/P&gt;&lt;P&gt;to create a dataset All with following variables:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;acctno&amp;nbsp; date_initial&amp;nbsp; day0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; day1_e day2_e day3_e day4_e day5_e&amp;nbsp; day1_f day2_f day3_f day4_f day5_f&lt;/P&gt;&lt;P&gt;3713&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20140323&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;3713&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 20140325&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for the first record:&lt;BR /&gt;&amp;nbsp; day0 is set to default 1 &lt;BR /&gt;&amp;nbsp; day1_e is if the date in expand dataset is greather than date in initial for the same acct no, and if the difference between the dates is 1 then day1_e is set to 1 and rest all day2_e to day5_e are set to 0 (day1_e to day5_e are the difference in days between&amp;nbsp; expand and initial dates, if the difference between them is&amp;nbsp; say 3&lt;BR /&gt;&amp;nbsp;&amp;nbsp; day3_e will be set to 1 and rest all to 0.maximum allowed is 5 days)&lt;/P&gt;&lt;P&gt; the same applies to day1_f to day5_f.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;for the second row,since date in initial is greater than date in expand and final datasets, we will have 0's in all day columns except day0.&lt;/P&gt;&lt;P&gt;How to do the above?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Apr 2014 16:17:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Day-difference/m-p/179208#M34225</guid>
      <dc:creator>SASPhile</dc:creator>
      <dc:date>2014-04-14T16:17:12Z</dc:date>
    </item>
    <item>
      <title>Re: Day difference</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Day-difference/m-p/179209#M34226</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;1. Merge the files together so that you have the following on the same row: acctno date_initial date_expand date_final.&lt;/P&gt;&lt;P&gt;2. In a data step, create two sets of arrays day1_e to day5_e and same for final, initialize to zero values.&lt;/P&gt;&lt;P&gt;3. Calculate the difference between dates from step #1 as and increment to 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;diff1=date_expand-date_initial;&lt;/P&gt;&lt;P&gt;if diff1&amp;gt;0 then date_array_e(diff1)=1; &lt;/P&gt;&lt;P&gt;diff2 = date_final-date_initial;&lt;/P&gt;&lt;P&gt;if diff2&amp;gt;0 then date_array_f(diff2)=1;&lt;/P&gt;&lt;P&gt;If diff is less than zero can exit the step. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Apr 2014 17:56:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Day-difference/m-p/179209#M34226</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-04-14T17:56:14Z</dc:date>
    </item>
    <item>
      <title>Re: Day difference</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Day-difference/m-p/179210#M34227</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As Reeza said. merge it all together , then judge it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data initial;
input acctno date_initial :yymmdd10.;
format date_initial yymmdd10.;
cards;
3713&amp;nbsp; 20140323
3713&amp;nbsp; 20140325
;
run;
data expand;
input acctno date_initial :yymmdd10.;
format date_initial yymmdd10.;
cards;
3713&amp;nbsp; 20140324
;
run;
data final;
input acctno date_initial :yymmdd10.;
format date_initial yymmdd10.;
cards;
3713&amp;nbsp; 20140324
;
run;

data w;
 merge initial expand(rename=(date_initial=e_date)) final(rename=(date_initial=f_date));
 by acctno;
 retain day0&amp;nbsp; 1;
 array _e{*} day1_e day2_e day3_e day4_e day5_e;
 array _f{*} day1_f day2_f day3_f day4_f day5_f;
 dif_e=e_date-date_initial;
 dif_f=f_date-date_initial;
 do i=1 to dim(_e);
&amp;nbsp; if i=dif_e then _e{i}=1;else _e{i}=0;
&amp;nbsp; if i=dif_f then _f{i}=1;else _f{i}=0;
 end;
drop i e_date f_date dif_e dif_f;
run;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Xia Keshan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Apr 2014 04:46:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Day-difference/m-p/179210#M34227</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2014-04-15T04:46:25Z</dc:date>
    </item>
  </channel>
</rss>

