mktime devuelve una marca de tiempo incorrecta (desactivada por un mes entero)

yo suelomktime para crear una marca de tiempo de Unix a partir de mi hora local actual:

#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);
}

Esto me da:

1402898400

Al convertir esto de nuevo a un tiempo legible para humanos (a través de algún sitio web) esto se traduce en:

16.06.2014 08:00:00

Como puede ver, esto es un mes de descuento de lo que esperaba (puesto en mayo (5), salió en junio (6)). ¿Por qué?

Respuestas a la pregunta(1)

Su respuesta a la pregunta