Aktualizovat „du3/program.c“

This commit is contained in:
Bohdan Yanchyk 2020-03-26 22:19:06 +00:00
parent dac272c24f
commit c75ad60f3c

View File

@ -4,15 +4,36 @@
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
int ValidateTime(int hh , int mm , int ss) int ValidateTime(int dd , int mm , int yy)
{ {
int ret=0; int res = 0;
if(yy>=1900 && yy<=9999)
if(hh>24) ret=1; {
if(mm>60) ret=1; //check month
if(ss>60) ret=1; if(mm>=1 && mm<=12)
{
return ret; //check days
if((dd>=1 && dd<=31) && (mm==1 || mm==3 || mm==5 || mm==7 || mm==8 || mm==10 || mm==12))
res = 1;
else if((dd>=1 && dd<=30) && (mm==4 || mm==6 || mm==9 || mm==11))
res = 1;
else if((dd>=1 && dd<=28) && (mm==2))
res = 1;
else if(dd==29 && mm==2 && (yy%400==0 ||(yy%4==0 && yy%100!=0)))
res = 1;
else
res = 0;
}
else
{
res = 0;
}
}
else
{
res = 0;
}
retrun res;
} }
int main() int main()
@ -20,12 +41,13 @@ int main()
char dateStr[11]; char dateStr[11];
struct tm t; struct tm t;
int hour = 0, min = 0, secs = 0; int dd = 0, mm = 0, yy = 0;
fgets(dateStr, 11, stdin); fgets(dateStr, 11, stdin);
sscanf(dateStr , "%d:%d:%d" , &hour,&min,&secs); sscanf(dateStr , "%d.%d.%d" , &dd,&mm,&yy);
if(!ValidateTime(hour,min,secs)){ if(!ValidateTime(dd,mm,yy)){
printf("Nespravny datum\n"); printf("Nespravny datum\n");
return 1;
} }
char* res = strptime(dateStr, "%d.%m.%Y", &t); char* res = strptime(dateStr, "%d.%m.%Y", &t);
if (res == NULL) { if (res == NULL) {