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

void main() 
{

#if 0 
                  int tm_sec;         /* seconds */
                  int tm_min;         /* minutes */
                  int tm_hour;        /* hours */
                  int tm_mday;        /* day of the month */
                  int tm_mon;         /* month */
                  int tm_year;        /* year */
                  int tm_wday;        /* day of the week */
                  int tm_yday;        /* day in the year */
                  int tm_isdst;       /* daylight saving time */
#endif

    struct tm buf;
    struct tm* buf2;
    time_t tt;
    
    /* This is actually a succesful call */
    tt = -1;
    buf2 = localtime(&tt);
    buf2->tm_wday = 42;
    buf2->tm_yday = 43;

    printf("\nSuccesful:\n");
    printf("%d\n", buf2->tm_year );
    printf("%d\n", buf2->tm_mon );
    printf("%d\n", buf2->tm_mday );
    printf("%d\n", buf2->tm_hour );
    printf("%d\n", buf2->tm_min );
    printf("%d\n", buf2->tm_sec );
    printf("%d\n", buf2->tm_wday );
    printf("%d\n", buf2->tm_yday );
    printf("%d\n", buf2->tm_isdst);
    printf("--\n");

    tt = mktime(buf2);
    printf("%d\n", (int)tt);
    printf("%d\n", buf2->tm_wday );
    printf("%d\n", buf2->tm_yday );

    /* This is an erroneous call */
    printf("\nErroneous:\n");
    buf2 = localtime(&tt);
    buf2->tm_wday = 42;
    buf2->tm_yday = 43;
    buf2->tm_year = -1000; /* invalid date/time */

    printf("%d\n", buf2->tm_year );
    printf("%d\n", buf2->tm_mon );
    printf("%d\n", buf2->tm_mday );
    printf("%d\n", buf2->tm_hour );
    printf("%d\n", buf2->tm_min );
    printf("%d\n", buf2->tm_sec );
    printf("%d\n", buf2->tm_wday );
    printf("%d\n", buf2->tm_yday );
    printf("%d\n", buf2->tm_isdst);

    tt = mktime(buf2);
    printf("--\n");
    printf("%d\n", (int)tt);
    printf("%d\n", buf2->tm_wday );
    printf("%d\n", buf2->tm_yday );

}

 	  	 
