title: Implementing a "Partial Date" object
body: <p>We have a requirement for a "<em>Partial Date</em>" object which would allow you to specify dates such as </p>
  
  <pre><code>new PartialDate(1, null, null);  // first of the month
  new PartialDate(1, 2, null);     // first of the February
  new PartialDate(null, 2, null);  // February
  </code></pre>
  
  <p>The use case is in relation to events. For example, you might have a course which takes place every January, in which case you don't want or need to specify the year component of the date object.</p>
  
  <p>We need to be able to sort by these dates based around some arbitrary rules, hence my thought to implement a data type (which will implement <code>IComparable&lt;PartialDate&gt;</code>, however this is outside the scope of my question).</p>
  
  <p>I have a couple of Questions:</p>
  
  <ol>
  <li>Is this a bad idea?</li>
  <li>I'm working in .NET, Is there some part of the framework (or 3rd party library) which will provide this functionality?</li>
  </ol>