#include <stdio.h>
#include <time.h>

int main(void) {
    struct tm t, *pt;
    time_t tijd;
    char* dag[] = {"zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"};
    
    /* stuct tm t vullen */
    printf("Geef de datum.\n");
    do {
        printf("Dag (1..31): ");
        fflush(stdin); 
    }
    while (scanf("%d", &t.tm_mday) != 1 || t.tm_mday < 1 || t.tm_mday > 31);
    do {    
        printf("Maand (1..12): "); 
        fflush(stdin);
    }
    while (scanf("%d", &t.tm_mon) != 1 || t.tm_mon < 1 || t.tm_mon > 12);
    t.tm_mon -= 1;
    do {    
        printf("Jaar (1970..2037): "); 
        fflush(stdin);
    }
    while (scanf("%d", &t.tm_year) != 1 || t.tm_year < 1970 || t.tm_year > 2037);
    t.tm_year -= 1900;
        
    t.tm_sec = 0;
    t.tm_min = 0;
    t.tm_hour = 0;
    t.tm_isdst = -1;

    /* struct tm omzetten naar een time_t */
    tijd = mktime(&t);
    
    if (tijd == -1) {
        printf("Ongeldige datum!\n");
    }
    else {
        /* time_t weer terug omzetten naar een struct tm */
        pt = localtime(&tijd);
        /* De dag van de week afdrukken */
        printf("%02d-%02d-%4d is een %s.\n", pt->tm_mday, pt->tm_mon + 1, pt->tm_year + 1900, dag[pt->tm_wday]);
    }
    fflush(stdin);
    getchar();
    return 0;
}
