Aktualizovat „du3/program.c“
This commit is contained in:
parent
dac272c24f
commit
c75ad60f3c
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user