mktime retorna o carimbo de data / hora errado (desativado por um mês inteiro)

eu usomktime para criar um registro de data e hora unix a partir da minha hora local atual:

#include <time.h>

int _tmain(int argc, _TCHAR* argv[])
{
  struct tm info;

  // 16.05.2014
  info.tm_mday = 16;
  info.tm_mon = 5;
  info.tm_year = 114; // Years since 1900

  // 08:00:00 Uhr
  info.tm_hour = 8;
  info.tm_min = 0;
  info.tm_sec = 0;

  // Convert to Unix timestamp
  info.tm_isdst = -1;
  time_t timestamp = mktime(&info);
  printf("Timestamp: %i", timestamp);
}

Isso me dá:

1402898400

Ao converter isso de volta para um tempo legível por humanos (por meio de algum site), isso se traduz em:

16.06.2014 08:00:00

Como você pode ver, esse é um mês de folga do que eu esperava (publicado em maio (5) e lançado em junho (6)). Por quê?

questionAnswers(1)

yourAnswerToTheQuestion