<?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: How to find ineligible date range from a date range in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331656#M271902</link>
    <description>&lt;P&gt;Thank you.&amp;nbsp; Now that the rules are clear to me,&amp;nbsp;I can almost directly translate them into SAS code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; input&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; Participant :&lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;$4. &lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;EligStart EligStop LockinStart LockinStop) (:&lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;mmddyy10.&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; format&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; EligStart EligStop LockinStart LockinStop &lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; ;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;datalines&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;ABC1 09/02/2010 10/14/2010 04/16/2010 03/29/2012&lt;/P&gt;
&lt;P&gt;ABC2 08/23/2010 09/01/2010 04/16/2010 03/29/2012&lt;/P&gt;
&lt;P&gt;ABC3 12/01/2009 08/22/2010 04/16/2010 03/29/2012&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; want;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; set&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; format&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; ineligstart ineligstop &lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstart&amp;lt;eligstart and lockinstop&amp;lt;=eligstop &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=lockinstart; ineligstop=eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end; else&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstart&amp;gt;=eligstart and lockinstop&amp;gt;eligstop &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; ineligstop=lockinstop; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end; else&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstart&amp;lt;eligstart and lockinstop&amp;gt;eligstop &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=lockinstart; ineligstop=eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; ineligstop=lockinstop;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But now that I understand that all you want is are date ranges in which lockinstart/lockinstop is not within the interval eligstart/eligstop, the code can be simplified.&amp;nbsp;&amp;nbsp;Instead of looking for three conditions (excess on left only, on right only, and on both sides), you can just look for excess on left, and on right, as in:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; want2;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; set&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; format&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; ineligstart ineligstop &lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstart&amp;lt;eligstart &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=lockinstart;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstop=eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstop&amp;gt;eligstop &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstop=lockinstop;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One note:&amp;nbsp; your samples do not include cases when the lockin range is ENTIRELY to the left or right of the eligible range (i.e. lockinstop&amp;lt;eligstart&amp;nbsp; or lockinstart&amp;gt;eligstop).&amp;nbsp; The programs above&amp;nbsp;assume that you want to include those unaccounted for dates in the INELIG date range.&amp;nbsp; But if not, then you should change:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp; ineligstop=eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp; ineligstop=min(eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;,lockinstop);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp; ineligstart=eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp; ineligstart=max(lockinstart,eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 10 Feb 2017 20:00:07 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2017-02-10T20:00:07Z</dc:date>
    <item>
      <title>How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331003#M271894</link>
      <description>&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is my first post!&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have two set of date ranges. One is eligibility and other lockin dates. I want to populate dates which are not covered under Lockin date range (compared against Eligibility). Below is just one example as i need to handle variables to achieve this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Participant&amp;nbsp; Elig.Start &amp;nbsp; &amp;nbsp; Elig.Stop &amp;nbsp; &amp;nbsp;Lockin.Start &amp;nbsp; &amp;nbsp; Lockin.Stop&lt;/P&gt;&lt;P&gt;ABC1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;09/02/2010 10/14/2010 04/16/2010 &amp;nbsp; &amp;nbsp;03/29/2012&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Expected output:&lt;/P&gt;&lt;P&gt;Participant&amp;nbsp; Elig.Start &amp;nbsp; &amp;nbsp; Elig.Stop &amp;nbsp; &amp;nbsp;Lockin.Start &amp;nbsp; &amp;nbsp; Lockin.Stop &amp;nbsp;Ineligible.start &amp;nbsp; &amp;nbsp;Ineligible.stop&lt;/P&gt;&lt;P&gt;ABC1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;09/02/2010 10/14/2010 04/16/2010 &amp;nbsp; &amp;nbsp;03/29/2012 &amp;nbsp; &amp;nbsp;04/16/2010 &amp;nbsp; &amp;nbsp; &amp;nbsp; 09/01/2010&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ABC1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;09/02/2010 10/14/2010 04/16/2010 &amp;nbsp; &amp;nbsp;03/29/2012 &amp;nbsp; 10/15/2010 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;03/29/2012&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2017 22:05:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331003#M271894</guid>
      <dc:creator>erbmani</dc:creator>
      <dc:date>2017-02-08T22:05:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331034#M271895</link>
      <description>&lt;P&gt;What are the rules, how do you know when it starts/stops?&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2017 23:40:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331034#M271895</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-02-08T23:40:52Z</dc:date>
    </item>
    <item>
      <title>Re: How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331038#M271896</link>
      <description>&lt;P&gt;Also before we go very far are your dates SAS date values or character (is their format mmddyy10 or $10 or similar)? If we need to compare dates the first thing will be to generate SAS date values.&lt;/P&gt;</description>
      <pubDate>Wed, 08 Feb 2017 23:49:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331038#M271896</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2017-02-08T23:49:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331052#M271897</link>
      <description>&lt;P&gt;You apparently want to output 2 records for every incoming record.&amp;nbsp; There are 2 new variables: ineligstart and ineligstop.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The first record has ineligstart=lockinstart and ineligstop=1 day prior to eligstart.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The 2nd record has ineligstart=1 day after eligstop and ineligstop=lockinstop.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Assuming, you have date numeric values not date character values (as per &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13884"&gt;@ballardw&lt;/a&gt;&amp;nbsp;note), then this would work:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input Participant :$4. 
  (EligStart EligStop LockinStart  LockinStop) (:mmddyy10.);
format EligStart     EligStop    LockinStart     LockinStop date9. ;
datalines;
ABC1  09/02/2010 10/14/2010 04/16/2010    03/29/2012
run;

data want;
  set have;
  ineligstart=lockinstart; ineligstop=eligstart-1; output;
  ineligstart=eligstop+1;  ineligstop=lockinstop;  output;
  format ineligstart ineligstop date9.;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If these are not your rules, then you have to clarify.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 02:07:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331052#M271897</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-02-09T02:07:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331073#M271898</link>
      <description>&lt;P&gt;Here are some more example for &amp;nbsp;better understanding of expected results.&lt;/P&gt;&lt;P&gt;PARTCIPAN, Elig.Start Dt,Elig.stop.Dt,Lockin start Dt, Lockin Stop Dt&lt;/P&gt;&lt;P&gt;ABC1,09/02/2010,10/14/2010,04/16/2010,03/29/2012&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ABC2,08/23/2010,09/01/2010,04/16/2010,03/29/2012&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ABC3,12/01/2009,08/22/2010,04/16/2010,03/29/2012&lt;/SPAN&gt;&lt;BR /&gt;Expected output:&lt;BR /&gt;&lt;SPAN&gt;ABC1,09/02/2010,10/14/2010,04/16/2010,03/29/2012&lt;/SPAN&gt;,04/16/2010,09/01/2010 &amp;nbsp;*Apr162010 till sep 1st is out of eilg. date range&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ABC1,09/02/2010,10/14/2010,04/16/2010,03/29/2012&lt;/SPAN&gt;,10/15/2010,03/29/2012 &amp;nbsp;*though its lockin partial covered but since Oct15&lt;/P&gt;&lt;P&gt;&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; &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; &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; &amp;nbsp;till Mar29 are out of elig. date range. &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ABC2,08/23/2010,09/01/2010,04/16/2010,03/29/2012&lt;/SPAN&gt;,04/16/2010,08/22/2010&lt;BR /&gt;&lt;SPAN&gt;ABC2,08/23/2010,09/01/2010,04/16/2010,03/29/2012&lt;/SPAN&gt;,09/02/2010,03/29/2012&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ABC3,12/01/2009,08/22/2010,04/16/2010,03/29/2012&lt;/SPAN&gt;,08/23/2010,03/29/2012&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;*Comments&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 06:26:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331073#M271898</guid>
      <dc:creator>erbmani</dc:creator>
      <dc:date>2017-02-09T06:26:25Z</dc:date>
    </item>
    <item>
      <title>Re: How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331074#M271899</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Its extract from DB2 table. its fine to have either format mmddyy10 or $10.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 06:28:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331074#M271899</guid>
      <dc:creator>erbmani</dc:creator>
      <dc:date>2017-02-09T06:28:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331238#M271900</link>
      <description>&lt;P&gt;I offered some tentative rules, which prompted more examples on your part.&amp;nbsp; I do not find your example output helpful in understanding how those rules should be modified.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please state the rules in words.&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 16:56:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331238#M271900</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-02-09T16:56:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331268#M271901</link>
      <description>&lt;P&gt;We concern about below cases ONLY,&lt;/P&gt;&lt;P&gt;Case1:&lt;/P&gt;&lt;P&gt;When Lockin_start &amp;lt; elig_ start&amp;nbsp;and Lockin_Stop &amp;lt;=elig_stop&lt;/P&gt;&lt;P&gt;then&lt;/P&gt;&lt;P&gt;we report this record since part of Lockin date range is outside elig_start range.&lt;/P&gt;&lt;P&gt;so it will be like this,&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;Ineligible_start_date =Lockin_start_date; &lt;SPAN&gt;Ineligible_stop_date=E&lt;/SPAN&gt;lig_start - 1;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;Example Case#1&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;INPUT;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;ABC1,09/02/2010,10/14/2010,04/16/2010,09/29/2010&lt;BR /&gt;OUTPUT:One record of Ineligible time frame.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;04/16/2010,09/01/2010&lt;BR /&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Case2:&lt;/P&gt;&lt;P&gt;When Lockin_start &amp;gt;= elig_ start&amp;nbsp;and Lockin_Stop &amp;gt; elig_stop&amp;nbsp;&lt;/P&gt;&lt;P&gt;then we are reporting this record since part of Lockin_stop date is outside&amp;nbsp;&lt;SPAN&gt;elig_stop date.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;so it will be,&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;Ineligible_start_date=E&lt;SPAN&gt;lig_stop&lt;/SPAN&gt;_date+1;&amp;nbsp;&lt;SPAN&gt;Ineligible_stop_date=&lt;/SPAN&gt;&lt;SPAN&gt;Lockin_Stop_date;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;Example Case#2&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;INPUT;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;ABC1,12/01/2009,08/22/2010,04/16/2010,03/29/2012&lt;BR /&gt;&lt;FONT color="#0000FF"&gt;OUTPUT:One record of Ineligible time frame.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;08/23/2010,03/29/2012&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Case3:&lt;/P&gt;&lt;P&gt;When Lockin_start &amp;lt; elig_ start&amp;nbsp;and Lockin_Stop &amp;gt; elig_stop&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here BOTH&amp;nbsp;&lt;SPAN&gt;Lockin_start and&amp;nbsp;Lockin_stop has partial date range outside the eligibility period.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;so this has to be handled by two records;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;Ineligible_start_date= Lockin_start_date; Ineligible_stop_date=Elig_start_date - 1;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#339966"&gt;&lt;SPAN&gt;Ineligible_start_date= Elig_stop_date+1; Ineligible_stop_ date=Lockin_Stop_date;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;Example Case#3&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;INPUT;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;ABC1,08/23/2010,09/01/2010,04/16/2010,03/29/2012&lt;BR /&gt;OUTPUT:Two records of Ineligible time frames.&lt;BR /&gt;04/16/2010,08/22/2010 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;BR /&gt;09/02/2010,03/29/2012&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;OR&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;Inelig_startdt_01&amp;nbsp;Inelig_stopdt_01 Inelig_startdt_02&amp;nbsp;Inelig_stopdt_02&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;&lt;SPAN&gt;04/16/2010,08/22/2010 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN&gt;09/02/2010,03/29/2012&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Feb 2017 18:28:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331268#M271901</guid>
      <dc:creator>erbmani</dc:creator>
      <dc:date>2017-02-09T18:28:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331656#M271902</link>
      <description>&lt;P&gt;Thank you.&amp;nbsp; Now that the rules are clear to me,&amp;nbsp;I can almost directly translate them into SAS code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; input&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; Participant :&lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;$4. &lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;EligStart EligStop LockinStart LockinStop) (:&lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;mmddyy10.&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; format&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; EligStart EligStop LockinStart LockinStop &lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; ;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;datalines&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;ABC1 09/02/2010 10/14/2010 04/16/2010 03/29/2012&lt;/P&gt;
&lt;P&gt;ABC2 08/23/2010 09/01/2010 04/16/2010 03/29/2012&lt;/P&gt;
&lt;P&gt;ABC3 12/01/2009 08/22/2010 04/16/2010 03/29/2012&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; want;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; set&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; format&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; ineligstart ineligstop &lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstart&amp;lt;eligstart and lockinstop&amp;lt;=eligstop &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=lockinstart; ineligstop=eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end; else&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstart&amp;gt;=eligstart and lockinstop&amp;gt;eligstop &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; ineligstop=lockinstop; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end; else&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstart&amp;lt;eligstart and lockinstop&amp;gt;eligstop &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=lockinstart; ineligstop=eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; ineligstop=lockinstop;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But now that I understand that all you want is are date ranges in which lockinstart/lockinstop is not within the interval eligstart/eligstop, the code can be simplified.&amp;nbsp;&amp;nbsp;Instead of looking for three conditions (excess on left only, on right only, and on both sides), you can just look for excess on left, and on right, as in:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; want2;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; set&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; have;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; format&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; ineligstart ineligstop &lt;/FONT&gt;&lt;FONT color="#008080" face="Sasfont"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstart&amp;lt;eligstart &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=lockinstart;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstop=eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; if&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt; lockinstop&amp;gt;eligstop &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Sasfont"&gt;do&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstart=eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ineligstop=lockinstop;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; output&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Sasfont"&gt;&amp;nbsp; end&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Sasfont"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One note:&amp;nbsp; your samples do not include cases when the lockin range is ENTIRELY to the left or right of the eligible range (i.e. lockinstop&amp;lt;eligstart&amp;nbsp; or lockinstart&amp;gt;eligstop).&amp;nbsp; The programs above&amp;nbsp;assume that you want to include those unaccounted for dates in the INELIG date range.&amp;nbsp; But if not, then you should change:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp; ineligstop=eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp; ineligstop=min(eligstart-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;,lockinstop);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp; ineligstart=eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;to&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Sasfont"&gt;&amp;nbsp;&amp;nbsp; ineligstart=max(lockinstart,eligstop+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Sasfont"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Sasfont"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Feb 2017 20:00:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/331656#M271902</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-02-10T20:00:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to find ineligible date range from a date range</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/350674#M271903</link>
      <description>Sorry mkeintz. Focused on other things and finally i got time to revisit to give fix and it worked perfectly. Thanks mkeintz and everyone.</description>
      <pubDate>Mon, 17 Apr 2017 23:26:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-find-ineligible-date-range-from-a-date-range/m-p/350674#M271903</guid>
      <dc:creator>erbmani</dc:creator>
      <dc:date>2017-04-17T23:26:31Z</dc:date>
    </item>
  </channel>
</rss>

