title: Why does Day() return 30 on invalid input?
body: <p>This is a problem I discovered, then solved, myself and since I couldn't find a SO question on the topic, I figured I'd create one for future reference.</p>
  
  <p>I accidentally wrote</p>
  
  <pre><code>debug.Print day(ow)
  </code></pre>
  
  <p>Instead of </p>
  
  <pre><code>debug.Print day(now)
  </code></pre>
  
  <p>To my surprise, rather than throwing an error, I instead got the following result:</p>
  
  <pre><code>debug.Print day(ow)
   30 
  </code></pre>
  
  <p>Why doesn't it throw an error when given an un-initialised variable as input?</p>