<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
  <channel>
    <title>FreeCheese.co.uk</title>
    <link>http://freecheese.co.uk</link>
    <description>The home of Adam J. Forster</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" href="http://posterous.com/api/sup_update#f80a61aa8" type="application/json" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/freecheese" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="freecheese" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://posterous.superfeedr.com/" /><item>
      <pubDate>Fri, 25 Nov 2011 10:15:58 -0800</pubDate>
      <title>Subtracting years from a date in Python</title>
      <link>http://freecheese.co.uk/configuring-ssmtp-on-ubuntu-1104</link>
      <guid>http://freecheese.co.uk/configuring-ssmtp-on-ubuntu-1104</guid>
      <description>
        <![CDATA[<p>
	<p>Here's a simple function to subtract a number of years from a given <code>datetime.date</code> object:</p>
<p><div class="data type-python">
      <table class="lines" cellspacing="0" cellpadding="0">
        <tr>
          <td>
            <pre class="line_numbers"><span rel="#L1" id="L1">1</span>
<span rel="#L2" id="L2">2</span>
<span rel="#L3" id="L3">3</span>
<span rel="#L4" id="L4">4</span>
<span rel="#L5" id="L5">5</span>
<span rel="#L6" id="L6">6</span>
<span rel="#L7" id="L7">7</span>
<span rel="#L8" id="L8">8</span>
<span rel="#L9" id="L9">9</span>
<span rel="#L10" id="L10">10</span>
<span rel="#L11" id="L11">11</span>
<span rel="#L12" id="L12">12</span>
<span rel="#L13" id="L13">13</span>
<span rel="#L14" id="L14">14</span>
<span rel="#L15" id="L15">15</span>
<span rel="#L16" id="L16">16</span>
<span rel="#L17" id="L17">17</span>
<span rel="#L18" id="L18">18</span>
<span rel="#L19" id="L19">19</span>
<span rel="#L20" id="L20">20</span>
<span rel="#L21" id="L21">21</span>
<span rel="#L22" id="L22">22</span>
<span rel="#L23" id="L23">23</span>
</pre>
          </td>
          <td width="100%">
                <div class="highlight"><pre /><div class="line" id="LC1"><span class="kn">import</span> <span class="nn">calendar</span></div><div class="line" id="LC2"><span class="kn">import</span> <span class="nn">datetime</span></div><div class="line" id="LC3"><br /></div><div class="line" id="LC4"><span class="k">def</span> <span class="nf">subtract_years</span><span class="p">(</span><span class="n">date</span><span class="p">,</span> <span class="n">years</span><span class="p">):</span></div><div class="line" id="LC5">&nbsp;&nbsp;&nbsp;&nbsp;<span class="sd">&quot;&quot;&quot;Subtract a number of years from a given date.</span></div><div class="line" id="LC6"><br /></div><div class="line" id="LC7"><span class="sd">    &gt;&gt;&gt; d = datetime.date(year=2012, month=2, day=29)</span></div><div class="line" id="LC8"><span class="sd">    &gt;&gt;&gt; subtract_years(d, 1)</span></div><div class="line" id="LC9"><span class="sd">    datetime.date(2011, 2, 28)</span></div><div class="line" id="LC10"><span class="sd">    &gt;&gt;&gt; subtract_years(d, 4)</span></div><div class="line" id="LC11"><span class="sd">    datetime.date(2008, 2, 29)</span></div><div class="line" id="LC12"><span class="sd">    &quot;&quot;&quot;</span></div><div class="line" id="LC13"><br /></div><div class="line" id="LC14">&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">year</span> <span class="o">=</span> <span class="n">date</span><span class="o">.</span><span class="n">year</span> <span class="o">-</span> <span class="n">years</span></div><div class="line" id="LC15">&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">month</span> <span class="o">=</span> <span class="n">date</span><span class="o">.</span><span class="n">month</span></div><div class="line" id="LC16">&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">day</span> <span class="o">=</span> <span class="n">date</span><span class="o">.</span><span class="n">day</span></div><div class="line" id="LC17">&nbsp;&nbsp;&nbsp;&nbsp;</div><div class="line" id="LC18">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="n">month</span> <span class="o">==</span> <span class="mi">2</span> <span class="ow">and</span> <span class="n">day</span> <span class="o">&gt;</span> <span class="mi">28</span><span class="p">:</span></div><div class="line" id="LC19">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">if</span> <span class="ow">not</span> <span class="n">calendar</span><span class="o">.</span><span class="n">isleap</span><span class="p">(</span><span class="n">year</span><span class="p">):</span></div><div class="line" id="LC20">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="n">day</span> <span class="o">=</span> <span class="mi">28</span></div><div class="line" id="LC21">&nbsp;&nbsp;&nbsp;&nbsp;</div><div class="line" id="LC22">&nbsp;&nbsp;&nbsp;&nbsp;<span class="k">return</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">(</span><span class="n">year</span><span class="o">=</span><span class="n">year</span><span class="p">,</span> <span class="n">month</span><span class="o">=</span><span class="n">month</span><span class="p">,</span> <span class="n">day</span><span class="o">=</span><span class="n">day</span><span class="p">)</span></div><div class="line" id="LC23"><br /></div></pre></div>
          </td>
        </tr>
      </table>
  </div></p>
	
</p>

<p><a href="http://freecheese.co.uk/configuring-ssmtp-on-ubuntu-1104">Permalink</a> 

	| <a href="http://freecheese.co.uk/configuring-ssmtp-on-ubuntu-1104#comment">Leave a comment&nbsp;&nbsp;&raquo;</a>

</p>]]>
      </description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1600871/adamjforster_2011-10-07.JPG</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/1kW7alGgv4Fr</posterous:profileUrl>
        <posterous:firstName>Adam J.</posterous:firstName>
        <posterous:lastName>Forster</posterous:lastName>
        <posterous:nickName>adamjforster</posterous:nickName>
        <posterous:displayName>Adam J. Forster</posterous:displayName>
      </posterous:author>
    </item>
  </channel>
</rss>

