Один уродливый хак, который я подумал, будет забавным: поскольку вам нужно только определить, какая дата / время больше, вы можете преобразовать дату в строку и сравнить строки. ;-) (Преимущество в том, что вам не нужно strptime, которое доступно не везде.)
#include <string.h>
#include <time.h>
int main(int argc, char *argv[])
{
const char *str = "2011-03-21 20:25";
char nowbuf[100];
time_t now = time(0);
struct tm *nowtm;
nowtm = localtime(&now);
strftime(nowbuf, sizeof(nowbuf), "%Y-%m-%d %H:%M", nowtm);
if (strncmp(str, nowbuf, strlen(str)) >= 0) puts("future"); else puts("past");
return 0;
}