title: mktime returns -1 when given a valid struct tm
body: <pre><code>#include &lt;stdio.h&gt;
  #include &lt;time.h&gt;
  
  int main(int argc, char* argv[])
  {
      struct tm stm;
      stm.tm_sec = 27;
      stm.tm_min = 5;
      stm.tm_hour = 18;
      stm.tm_mday = 2;
      stm.tm_mon = 0;
      stm.tm_year = 43;
      stm.tm_wday = 0;
      stm.tm_yday = 0;
      printf("%d\n", mktime(&amp;stm));
      getchar();
      return 0;
  }
  </code></pre>
  
  <p>prints -1</p>
  
  <p>What am I misunderstanding?</p>
  
  <p>[+edit] this is using Visual Studio 2012 with 32 bit target. I guess a follow up question would be 'what is the recommended method for storing arbitrary date/time values (i.e. those which may be before 1900)?'</p>