82 lines
1.8 KiB
C
82 lines
1.8 KiB
C
#define _XOPEN_SOURCE
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <time.h>
|
|
|
|
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;*/
|
|
}
|