<?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: Date Macro or Function in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/454490#M114871</link>
    <description>&lt;P&gt;Please post some example data (see my footnote for this), and a matching example for the expected output (the expected output doesn't need to be in a data step).&lt;/P&gt;</description>
    <pubDate>Mon, 16 Apr 2018 15:49:23 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2018-04-16T15:49:23Z</dc:date>
    <item>
      <title>Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/452468#M114212</link>
      <description>&lt;P&gt;Hi Team,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am working on automating some of the manual steps in a new team and in need of your SAS knowledge.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There is this particular date logic within SAS that my new team keeps changing every day.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Whilst I know how to determine the previous day and today's date, there is this other additional weekly change that I don't know how to do, hence I am here.&lt;/P&gt;&lt;P&gt;My&amp;nbsp;new team have to change the reporting date as per follows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. Every Monday&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 'old date' &amp;nbsp;must be Thursday of last week and 'new date' must be Saturday of last week&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. Every Tuesday&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; 'old date' must be Friday of last week and 'new date' must be Sunday of last week.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3. Every other day&lt;/P&gt;&lt;P&gt;&amp;nbsp;'old date' = previous day&lt;/P&gt;&lt;P&gt;&amp;nbsp; 'new date' = today () minus 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;would there be a function that could do all &amp;nbsp;1, 2 &amp;amp; 3 ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Truly appreciate your help,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mags&lt;/P&gt;</description>
      <pubDate>Mon, 09 Apr 2018 11:37:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/452468#M114212</guid>
      <dc:creator>Timbim</dc:creator>
      <dc:date>2018-04-09T11:37:14Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/452472#M114213</link>
      <description>&lt;P&gt;You want to use the WEEKDAY function to determine if the day of the week is Monday, Tuesday, etc.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From there, a series of IF statements ought to get the proper 'old date' and 'new date'.&lt;/P&gt;</description>
      <pubDate>Mon, 09 Apr 2018 11:49:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/452472#M114213</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2018-04-09T11:49:20Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/452475#M114214</link>
      <description>&lt;P&gt;Since #1 and #2 have the same math, the statements are quite simple:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if weekday(date) in (2,3)
then do;
  old_date = date - 4;
  new_date = date - 2;
end;
else do;
  old_date = date - 1;
  new_date = today() - 1;
end;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;if date = today() and weekday(date) neither a Monday nor a Tuesday, old_date and new_date would be identical.&lt;/P&gt;</description>
      <pubDate>Mon, 09 Apr 2018 11:58:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/452475#M114214</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-09T11:58:44Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/453064#M114421</link>
      <description>&lt;P&gt;Thanks Kurt. How can I write that in a Macro?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Kind regards,&lt;/P&gt;&lt;P&gt;Maggie&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>Wed, 11 Apr 2018 04:29:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/453064#M114421</guid>
      <dc:creator>Timbim</dc:creator>
      <dc:date>2018-04-11T04:29:34Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/453071#M114425</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138573"&gt;@Timbim&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Thanks Kurt. How can I write that in a Macro?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Kind regards,&lt;/P&gt;
&lt;P&gt;Maggie&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;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Very simple: you don't. This is data handling, for which the data step is the tool of choice. If you need certain values later on in your program, use call symput() or call symputx() to store them in macro variables.&lt;/P&gt;</description>
      <pubDate>Wed, 11 Apr 2018 05:46:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/453071#M114425</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-11T05:46:37Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/454487#M114869</link>
      <description>Hi Kurt, I tried your statements but it is not quiet giving me the output I am looking for.&lt;BR /&gt;&lt;BR /&gt;It is an account level data and must only spit out 2 records of data for 1 account that must contain the ‘old date ‘ date and ‘new date’ data only&lt;BR /&gt;If the weekday is Monday , give me data for Thursday and Saturday, if the week day is Tuesday give me data for Friday and Sunday else give me yesterday and the previous day data.&lt;BR /&gt;&lt;BR /&gt;Your help is highly appreciated.&lt;BR /&gt;Kind regards,&lt;BR /&gt;Mags&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Mon, 16 Apr 2018 15:45:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/454487#M114869</guid>
      <dc:creator>Timbim</dc:creator>
      <dc:date>2018-04-16T15:45:17Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/454490#M114871</link>
      <description>&lt;P&gt;Please post some example data (see my footnote for this), and a matching example for the expected output (the expected output doesn't need to be in a data step).&lt;/P&gt;</description>
      <pubDate>Mon, 16 Apr 2018 15:49:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/454490#M114871</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-16T15:49:23Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455584#M115267</link>
      <description>&lt;P&gt;Hi Kurt,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below is the current example and please note every Mondays, the 'old date' must be Thursdays and the 'new date' must be Saturdays. Every Tuesdays, the 'old date' must be Saturdays and 'new date' must be Mondays. Every other day from Wed-Friday 'old date' is today() minus 2 and 'new date' is today() minus 1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* Date Comparisons;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; old = '17Apr2018'd; ;&lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="2"&gt;*old date;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%let&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; new = '18Apr2018'd; ;&lt;/FONT&gt;&lt;FONT color="#008000" face="Courier New" size="2"&gt;*new date&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%&lt;STRONG&gt;&lt;I&gt;_eg_conditional_dropds&lt;/I&gt;&lt;/STRONG&gt;(WORK.DAILY_T);&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;PROC&lt;/STRONG&gt;&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;SQL&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;CREATE&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;TABLE&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; WORK.DAILY_T &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;AS&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;SELECT&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; Date,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; AccNo,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; BranchNumber,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&amp;nbsp; AccBal&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;FROM&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; ACCOUNT_DAILY_TABLE&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;WHERE&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; Date &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;IN&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; (&amp;amp;old, &amp;amp;new);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;RUN&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I can easily use the intnx function to do Wed-Fri like below but having issue trying to figure out a way to do Mon and Tues.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;Proc&lt;/STRONG&gt;&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;Sql&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;Create&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;Table&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; DAILY_T &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;as&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;Select&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; Date,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;(case&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;when&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;Date = today()&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;2&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="#800080" face="Courier New" size="2"&gt;'Previous'&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;else&lt;/FONT&gt; &lt;FONT color="#800080" face="Courier New" size="2"&gt;'Current'&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;end) &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;as&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; Period,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;AccNo,&lt;/P&gt;&lt;P&gt;BranchNumber,&lt;/P&gt;&lt;P&gt;AccBal&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;From&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; ACCOUNT_DAILY_TABLE&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;where&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;Date &amp;gt;=intnx (&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="2"&gt;'day'&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;,today(),-&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;2&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;Quit&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&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;Can you please help me with a function or data step to do all in once:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;if Monday, then 'old date' is&amp;nbsp;Thur and 'new date' is Saturday&lt;/P&gt;&lt;P&gt;if Tuesday, the 'old date' is Saturday and 'new date' is Monday&lt;/P&gt;&lt;P&gt;else 'old date' is today() minus 2 and 'new date' is today() minus 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;----OUTPUT-----&lt;/P&gt;&lt;P&gt;The output has to have 2 records of the same account - 1 record for 'old date' and 1 record for 'new date'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Highly value your help.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks kindly,&lt;/P&gt;&lt;P&gt;Mags&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 12:58:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455584#M115267</guid>
      <dc:creator>Timbim</dc:creator>
      <dc:date>2018-04-19T12:58:11Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455600#M115278</link>
      <description>&lt;P&gt;I see code, but no example data to apply it to. I need example data to play around with, posted in a data step (see second link in my footnote).&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 13:19:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455600#M115278</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-19T13:19:29Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455611#M115280</link>
      <description>&lt;P&gt;Hi Kurt,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below are dummy figures in the exact same format like the real data.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;AccNo&lt;/TD&gt;&lt;TD&gt;BranchNumber&lt;/TD&gt;&lt;TD&gt;AccBal&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12-Apr-18&lt;/TD&gt;&lt;TD&gt;1234567&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2345.87&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13-Apr-18&lt;/TD&gt;&lt;TD&gt;1234567&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2345.87&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14-Apr-18&lt;/TD&gt;&lt;TD&gt;1234567&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2345.87&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15-Apr-18&lt;/TD&gt;&lt;TD&gt;1234567&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2345.87&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16-Apr-18&lt;/TD&gt;&lt;TD&gt;1234567&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2345.87&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;17-Apr-18&lt;/TD&gt;&lt;TD&gt;1234567&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2345.87&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18-Apr-18&lt;/TD&gt;&lt;TD&gt;1234567&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2345.87&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;12-Apr-18&lt;/TD&gt;&lt;TD&gt;3456789&lt;/TD&gt;&lt;TD&gt;456&lt;/TD&gt;&lt;TD&gt;5678.47&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;13-Apr-18&lt;/TD&gt;&lt;TD&gt;3456789&lt;/TD&gt;&lt;TD&gt;456&lt;/TD&gt;&lt;TD&gt;5678.47&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;14-Apr-18&lt;/TD&gt;&lt;TD&gt;3456789&lt;/TD&gt;&lt;TD&gt;456&lt;/TD&gt;&lt;TD&gt;5678.47&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15-Apr-18&lt;/TD&gt;&lt;TD&gt;3456789&lt;/TD&gt;&lt;TD&gt;456&lt;/TD&gt;&lt;TD&gt;5678.47&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;16-Apr-18&lt;/TD&gt;&lt;TD&gt;3456789&lt;/TD&gt;&lt;TD&gt;456&lt;/TD&gt;&lt;TD&gt;5678.47&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;17-Apr-18&lt;/TD&gt;&lt;TD&gt;3456789&lt;/TD&gt;&lt;TD&gt;456&lt;/TD&gt;&lt;TD&gt;5678.47&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;18-Apr-18&lt;/TD&gt;&lt;TD&gt;3456789&lt;/TD&gt;&lt;TD&gt;456&lt;/TD&gt;&lt;TD&gt;5678.47&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks kindly,&lt;/P&gt;&lt;P&gt;Mags&lt;/P&gt;</description>
      <pubDate>Thu, 19 Apr 2018 14:00:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455611#M115280</guid>
      <dc:creator>Timbim</dc:creator>
      <dc:date>2018-04-19T14:00:36Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455852#M115388</link>
      <description>&lt;P&gt;&lt;A href="https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712" target="_blank"&gt;https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-data-AKA-generate/ta-p/258712&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Apr 2018 08:56:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455852#M115388</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-20T08:56:45Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455865#M115393</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138573"&gt;@Timbim&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;The required rule for date selections is not really clear to me. Can you please confirm or amend below assumption?&lt;/P&gt;
&lt;TABLE width="277"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="105"&gt;Execution Day&lt;/TD&gt;
&lt;TD width="91"&gt;Start Day&lt;/TD&gt;
&lt;TD width="81"&gt;End Day&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Monday&lt;/TD&gt;
&lt;TD&gt;Thursday&lt;/TD&gt;
&lt;TD&gt;Saturday&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Tuesday&lt;/TD&gt;
&lt;TD&gt;Friday&lt;/TD&gt;
&lt;TD&gt;Sunday&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Wednesday&lt;/TD&gt;
&lt;TD&gt;Monday&lt;/TD&gt;
&lt;TD&gt;Tuesday&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Thursday&lt;/TD&gt;
&lt;TD&gt;Tuesday&lt;/TD&gt;
&lt;TD&gt;Wednesday&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Friday&lt;/TD&gt;
&lt;TD&gt;Wednesday&lt;/TD&gt;
&lt;TD&gt;Thursday&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From what you describe I assume there is no execution on week ends.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You've also posted the following code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;when Date = today() - 2 then 'Previous' else 'Current&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How does this look on a Monday (execution day). Are you also selecting Friday? And if so is Friday categorized as "Previous" or as "Current"?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I believe once we fully understand the selection logic and things really depend only on the execution date - today() - then some improved usage of the intnx() function will solve the problem.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Apr 2018 10:10:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455865#M115393</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2018-04-20T10:10:18Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455872#M115397</link>
      <description>Hi Patrick,&lt;BR /&gt;&lt;BR /&gt;The assumption you made on the table are correct expect for Tuesday:&lt;BR /&gt;&lt;BR /&gt;Execution Day = Tuesday&lt;BR /&gt;Start Day = Saturday&lt;BR /&gt;Finish Day = Monday&lt;BR /&gt;&lt;BR /&gt;For Monday:&lt;BR /&gt;&lt;BR /&gt;Execution Day = Monday&lt;BR /&gt;Start Day = Thursday&lt;BR /&gt;Finish Day = Saturday&lt;BR /&gt;&lt;BR /&gt;The code I posted can only give me current and previous day data of other days except for Monday and Tuesday. I need help with a logic for Monday and Tuesday.&lt;BR /&gt;&lt;BR /&gt;To put in words:&lt;BR /&gt;If today is Monday, give me me Thursday and Saturday’s data&lt;BR /&gt;If today is Tuesday, give me Saturday and Monday’s days&lt;BR /&gt;else last 2 days data. I hope this makes sense.&lt;BR /&gt;&lt;BR /&gt;Highly value your help.&lt;BR /&gt;&lt;BR /&gt;Kind regards,&lt;BR /&gt;Mags&lt;BR /&gt;&lt;BR /&gt;If Tu</description>
      <pubDate>Fri, 20 Apr 2018 10:22:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455872#M115397</guid>
      <dc:creator>Timbim</dc:creator>
      <dc:date>2018-04-20T10:22:38Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455876#M115398</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138573"&gt;@Timbim&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;"&lt;EM&gt;&lt;STRONG&gt;If today is Monday, give me me Thursday and Saturday’s data&lt;/STRONG&gt;&lt;/EM&gt;"&lt;/P&gt;
&lt;P&gt;So also on Monday and Tuesday we're also selecting only &lt;FONT color="#ff0000"&gt;&lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/FONT&gt; days? So on a Monday we're only selecting Thursday and Saturday and we skip Friday? Please confirm!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;...and: I've amended my table based on how I understand you. What happens to Friday?&lt;/P&gt;
&lt;TABLE width="277"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="105"&gt;Execution Date&lt;/TD&gt;
&lt;TD width="91"&gt;start date&lt;/TD&gt;
&lt;TD width="81"&gt;end date&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Monday&lt;/TD&gt;
&lt;TD&gt;Thursday&lt;/TD&gt;
&lt;TD&gt;Saturday&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Tuesday&lt;/TD&gt;
&lt;TD&gt;Saturday&lt;/TD&gt;
&lt;TD&gt;Monday&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Wednesday&lt;/TD&gt;
&lt;TD&gt;Monday&lt;/TD&gt;
&lt;TD&gt;Tuesday&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Thursday&lt;/TD&gt;
&lt;TD&gt;Tuesday&lt;/TD&gt;
&lt;TD&gt;Wednesday&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;Friday&lt;/TD&gt;
&lt;TD&gt;Wednesday&lt;/TD&gt;
&lt;TD&gt;Thursday&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Can you please just post above table with the right days?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Apr 2018 10:35:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455876#M115398</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2018-04-20T10:35:01Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455903#M115403</link>
      <description>&lt;P&gt;You can do most of this with INTNX() function using the WEEKDAY interval and specifying the proper week-end days.&amp;nbsp; You will need to use different "week-end" days for the OLD and NEW date calculations.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;old = intnx('weekday17w',today,-2) ;
new = intnx('weekday2w',today,-1) ;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;For the OLD date you are just treating Sunday (1) and Saturday (7) as the week-end days. So Monday - 2 &amp;gt; Thursday.&lt;/P&gt;
&lt;P&gt;For the NEW data you only need to treat Monday (2) as the week-end day.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test ;
  do today = '16APR2018'd to '20APR2018'd ;
    old = intnx('weekday17w',today,-2) ;
    new = intnx('weekday2w',today,-1) ;
    day1 = put(today,downame.-l);
    day2 = put(old,downame.-l);
    day3 = put(new,downame.-l);
    output;
    format today old new yymmdd10. ;
  end;
run;
proc print; run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;PRE&gt;Obs         today           old           new    day1         day2         day3

 1     2018-04-16    2018-04-12    2018-04-14    Monday       Thursday     Saturday
 2     2018-04-17    2018-04-13    2018-04-15    Tuesday      Friday       Sunday
 3     2018-04-18    2018-04-16    2018-04-17    Wednesday    Monday       Tuesday
 4     2018-04-19    2018-04-17    2018-04-18    Thursday     Tuesday      Wednesday
 5     2018-04-20    2018-04-18    2018-04-19    Friday       Wednesday    Thursday
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Apr 2018 12:59:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455903#M115403</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2018-04-20T12:59:31Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455923#M115413</link>
      <description>@ Patrick you’ve understood correctly. The execution, start and end dates are correct on your table. Yes, we skip Friday. The tables have account information and we get a snapshot of Saturday’s end of day balance which already includes Friday.&lt;BR /&gt;&lt;BR /&gt;Thanks kindly,&lt;BR /&gt;Mags</description>
      <pubDate>Fri, 20 Apr 2018 14:15:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/455923#M115413</guid>
      <dc:creator>Timbim</dc:creator>
      <dc:date>2018-04-20T14:15:34Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/456114#M115501</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138573"&gt;@Timbim&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;And now applying &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159"&gt;@Tom&lt;/a&gt;'s logic to your code things could look like:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let old = %sysfunc(intnx(weekday17w,%sysfunc(today()),-2));
%let new = %sysfunc(intnx(weekday2w,%sysfunc(today()),-1)) ;
proc sql;
  create table daily_t as
    select 
      date,
      case
        when date = &amp;amp;old then 'previous' 
        else 'current'
      end
      as period,
      accno,
      branchnumber,
      accbal
    from account_daily_table
      where date in (&amp;amp;old, &amp;amp;new);
quit;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can of course also use the intnx() functions directly within your SQL in place of the macro variables.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Apr 2018 23:15:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/456114#M115501</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2018-04-20T23:15:23Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/456773#M115743</link>
      <description>&lt;P&gt;Hi Patrick,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using the below as you've stated and it worked perfectly when I ran the code yesterday (Monday) where it gave me the old date = Thursday and new date = Saturday however it is not working when I ran today (Tuesday). It gave me old date = Friday and new date = Sunday when it should be old date = Saturday and new date = Mon&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token macroname"&gt;%let&lt;/SPAN&gt; old &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token macrostatement"&gt;%sysfunc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;intnx&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;weekday17w&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;SPAN class="token macrostatement"&gt;%sysfunc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;today&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 punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;-2&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 punctuation"&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="token macroname"&gt;%let&lt;/SPAN&gt; new &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token macrostatement"&gt;%sysfunc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;intnx&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;weekday2w&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;SPAN class="token macrostatement"&gt;%sysfunc&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token function"&gt;today&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 punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;-1&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 punctuation"&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="token procnames"&gt;proc&lt;/SPAN&gt; &lt;SPAN class="token procnames"&gt;sql&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; create &lt;SPAN class="token statement"&gt;table&lt;/SPAN&gt; daily_t as&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token statement"&gt;select&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token function"&gt;date&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when &lt;SPAN class="token function"&gt;date&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;&amp;amp;&lt;/SPAN&gt;old &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'previous'&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token keyword"&gt;else&lt;/SPAN&gt; &lt;SPAN class="token string"&gt;'current'&lt;/SPAN&gt; end as period&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; accno&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; branchnumber&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; accbal&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="token keyword"&gt;from&lt;/SPAN&gt; account_daily_table &lt;SPAN class="token statement"&gt;where&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;date&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;in&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;&amp;amp;&lt;/SPAN&gt;old&lt;SPAN class="token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;&amp;amp;&lt;/SPAN&gt;new&lt;SPAN class="token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="token procnames"&gt;quit&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token punctuation"&gt;Appreciate your help.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token punctuation"&gt;Thanks kindly,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="token punctuation"&gt;Mags&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Apr 2018 05:58:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/456773#M115743</guid>
      <dc:creator>Timbim</dc:creator>
      <dc:date>2018-04-24T05:58:34Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/456774#M115744</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138573"&gt;@Timbim&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Hi Team,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am working on automating some of the manual steps in a new team and in need of your SAS knowledge.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There is this particular date logic within SAS that my new team keeps changing every day.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Whilst I know how to determine the previous day and today's date, there is this other additional weekly change that I don't know how to do, hence I am here.&lt;/P&gt;
&lt;P&gt;My&amp;nbsp;new team have to change the reporting date as per follows:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. Every Monday&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; 'old date' &amp;nbsp;must be Thursday of last week and 'new date' must be Saturday of last week&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. Every Tuesday&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; 'old date' must be Friday of last week and 'new date' must be Sunday of last week.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. Every other day&lt;/P&gt;
&lt;P&gt;&amp;nbsp;'old date' = previous day&lt;/P&gt;
&lt;P&gt;&amp;nbsp; 'new date' = today () minus 1&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;would there be a function that could do all &amp;nbsp;1, 2 &amp;amp; 3 ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Truly appreciate your help,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Mags&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR /&gt;This code delivers exactly what you want:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data _null_;
format date old_date new_date weekdate30.;
do date = today() - 7 to today();
  if weekday(date) in (2,3)
  then do;
    old_date = date - 4;
    new_date = date - 2;
  end;
  else do;
    old_date = date - 1;
    new_date = today() - 1;
  end;
  put date=;
  put old_date=;
  put new_date=;
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Log:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;27         data _null_;
28         format date old_date new_date weekdate30.;
29         do date = today() - 7 to today();
30           if weekday(date) in (2,3)
31           then do;
32             old_date = date - 4;
33             new_date = date - 2;
34           end;
35           else do;
36             old_date = date - 1;
37             new_date = today() - 1;
38           end;
39           put date=;
40           put old_date=;
41           put new_date=;
42         end;
43         run;

date=Tuesday, April 17, 2018
old_date=Friday, April 13, 2018
new_date=Sunday, April 15, 2018
date=Wednesday, April 18, 2018
old_date=Tuesday, April 17, 2018
new_date=Monday, April 23, 2018
date=Thursday, April 19, 2018
old_date=Wednesday, April 18, 2018
new_date=Monday, April 23, 2018
date=Friday, April 20, 2018
old_date=Thursday, April 19, 2018
new_date=Monday, April 23, 2018
date=Saturday, April 21, 2018
old_date=Friday, April 20, 2018
new_date=Monday, April 23, 2018
date=Sunday, April 22, 2018
old_date=Saturday, April 21, 2018
new_date=Monday, April 23, 2018
date=Monday, April 23, 2018
old_date=Thursday, April 19, 2018
new_date=Saturday, April 21, 2018
date=Tuesday, April 24, 2018
old_date=Friday, April 20, 2018
new_date=Sunday, April 22, 2018
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.01 seconds
&lt;/PRE&gt;
&lt;P&gt;although it esacpes me why you want today()-1 as new_date&amp;nbsp; for all weekdays except Monday&amp;amp;Tuesday. Shouldn't that also be derived from date?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Apr 2018 06:27:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/456774#M115744</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-04-24T06:27:04Z</dc:date>
    </item>
    <item>
      <title>Re: Date Macro or Function</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/456779#M115745</link>
      <description>&lt;P&gt;Hi Kurt,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Every Tuesday statement made in the first posting is incorrect. It should be as per below:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Execution Date&lt;/TD&gt;&lt;TD&gt;start date&lt;/TD&gt;&lt;TD&gt;end date&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Monday&lt;/TD&gt;&lt;TD&gt;Thursday&lt;/TD&gt;&lt;TD&gt;Saturday&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Tuesday&lt;/TD&gt;&lt;TD&gt;Saturday&lt;/TD&gt;&lt;TD&gt;Monday&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Wednesday&lt;/TD&gt;&lt;TD&gt;Monday&lt;/TD&gt;&lt;TD&gt;Tuesday&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Thursday&lt;/TD&gt;&lt;TD&gt;Tuesday&lt;/TD&gt;&lt;TD&gt;Wednesday&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Friday&lt;/TD&gt;&lt;TD&gt;Wednesday&lt;/TD&gt;&lt;TD&gt;Thursday&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Below is what I need when I run the code on specific days&amp;nbsp;:&lt;/P&gt;&lt;P&gt;&amp;nbsp;Every Mondays, I want it to return me Thursday's and&amp;nbsp;Saturday's &amp;nbsp;records&lt;/P&gt;&lt;P&gt;Every Tuesdays, I want it to return me Saturday's and&amp;nbsp;Monday's &amp;nbsp;records&lt;/P&gt;&lt;P&gt;Every Wednesday, I want it to return Monday's and Tuesday's records&lt;/P&gt;&lt;P&gt;Every Thursday, I want it to return Tuesday's and Wednesday's records&lt;/P&gt;&lt;P&gt;Every Friday, I want it to return Wednesday's and Thursday's records&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Your help is highly appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Mags&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Apr 2018 06:47:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Date-Macro-or-Function/m-p/456779#M115745</guid>
      <dc:creator>Timbim</dc:creator>
      <dc:date>2018-04-24T06:47:03Z</dc:date>
    </item>
  </channel>
</rss>

