#define _XOPEN_SOURCE #include #include #include #include int ValidateTime(int hh , int mm , int ss) { int ret=0; if(hh>24) ret=1; if(mm>60) ret=1; if(ss>60) ret=1; return ret; } int main() { char dateStr[11]; struct tm t; int hour = 0, min = 0, secs = 0; fgets(dateStr, 11, stdin); sscanf(dateStr , "%d:%d:%d" , &hour,&min,&secs); if(!ValidateTime(hour,min,secs)){ printf("Nespravny datum\n"); } char* res = strptime(dateStr, "%d.%m.%Y", &t); if (res == NULL) { printf("error: can't parse date!\n"); return 1; } t.tm_mday += 7; t.tm_sec = 0; t.tm_min = 0; t.tm_hour = 0; time_t mid = mktime(&t); struct tm* t2 = localtime(&mid); if(t2->tm_mday < 10){ if(t2->tm_mon + 1 < 10){ printf(" %d.0%d.%d\n\n", t2->tm_mday, t2->tm_mon + 1, t2->tm_year + 1900); } else{ printf(" %d.%d.%d\n\n", t2->tm_mday, t2->tm_mon + 1, t2->tm_year + 1900); } } else{ if(t2->tm_mon + 1 < 10){ printf("%d.0%d.%d\n\n", t2->tm_mday, t2->tm_mon + 1, t2->tm_year + 1900); } else{ printf("%d.%d.%d\n\n", t2->tm_mday, t2->tm_mon + 1, t2->tm_year + 1900); } } return 0; /*if (time == (time_t)-1) { printf("fails with error: can't convert date to time!\n"); return 1; }*/ //t2 = localtime(&sec); /*time(&timer); double seconds = difftime(timer,mktime(&t)); printf("%.f", seconds); return 0; if(t.tm_mon + 1 < 10){ printf(" %d.0%d.%d\n\n", t.tm_mday, t.tm_mon + 1, t.tm_year + 1900); } else{ printf(" %d.%d.%d\n\n", t.tm_mday, t.tm_mon + 1, t.tm_year + 1900); } exit(EXIT_SUCCESS); return 0;*/ }