I am currently writing a script where it's to automate generating reports for end of quarter reports. Part of the naming convention for the folders includes Q1, Q2, Q3, or Q4 based on which quarter it is for based on the date it is generated. So far, my code looks like this:
<SPAN class="keyword token">import</SPAN> arcpy
<SPAN class="keyword token">import</SPAN> datetime
date <SPAN class="operator token">=</SPAN> datetime<SPAN class="punctuation token">.</SPAN>date<SPAN class="punctuation token">.</SPAN>today<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN>
quarter <SPAN class="operator token">=</SPAN> <SPAN class="string token">'Q1'</SPAN> <SPAN class="keyword token">if</SPAN> <SPAN class="string token">'2017-01-01'</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token"><</SPAN> str<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token"><</SPAN> <SPAN class="string token">'2017-03-31'</SPAN> <SPAN class="keyword token">elif</SPAN> <SPAN class="string token">'Q2'</SPAN> <SPAN class="keyword token">if</SPAN> <SPAN class="string token">'2017-04-01'</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token"><</SPAN> str<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token"><</SPAN> <SPAN class="string token">'2017-06-30'</SPAN> <SPAN class="keyword token">elif</SPAN> <SPAN class="string token">'Q3'</SPAN> <SPAN class="keyword token">if</SPAN> <SPAN class="string token">'2017-07-01'</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token"><</SPAN> str<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token"><</SPAN> <SPAN class="string token">'2017-09-30'</SPAN> <SPAN class="keyword token">else</SPAN> <SPAN class="string token">'Q4'</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
My issue is that I get an output of Q4 when I try
<SPAN class="keyword token">print</SPAN> quarter<SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
. The output generated should have been Q3 as I ran this today (July 10, 2017). If I change the ending of the code to be
<SPAN class="string token">'Q4'</SPAN> <SPAN class="keyword token">if</SPAN> <SPAN class="string token">'2017-10-01'</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token"><</SPAN> str<SPAN class="punctuation token">(</SPAN>date<SPAN class="punctuation token">)</SPAN> <SPAN class="operator token">=</SPAN><SPAN class="operator token"><</SPAN> <SPAN class="string token">'2017-12-31'</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
, the result would be a syntax error. What am I doing wrong and how can I fix it but also stored the if conditional in one line and set it equal to the variable quarter?