Aktualizovat „du3/program.c“
This commit is contained in:
parent
dac272c24f
commit
c75ad60f3c
@ -4,15 +4,36 @@
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
int ValidateTime(int hh , int mm , int ss)
|
||||
int ValidateTime(int dd , int mm , int yy)
|
||||
{
|
||||
int ret=0;
|
||||
|
||||
if(hh>24) ret=1;
|
||||
if(mm>60) ret=1;
|
||||
if(ss>60) ret=1;
|
||||
|
||||
return ret;
|
||||
int res = 0;
|
||||
if(yy>=1900 && yy<=9999)
|
||||
{
|
||||
//check month
|
||||
if(mm>=1 && mm<=12)
|
||||
{
|
||||
//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()
|
||||
@ -20,12 +41,13 @@ int main()
|
||||
|
||||
char dateStr[11];
|
||||
struct tm t;
|
||||
int hour = 0, min = 0, secs = 0;
|
||||
int dd = 0, mm = 0, yy = 0;
|
||||
|
||||
fgets(dateStr, 11, stdin);
|
||||
sscanf(dateStr , "%d:%d:%d" , &hour,&min,&secs);
|
||||
if(!ValidateTime(hour,min,secs)){
|
||||
sscanf(dateStr , "%d.%d.%d" , &dd,&mm,&yy);
|
||||
if(!ValidateTime(dd,mm,yy)){
|
||||
printf("Nespravny datum\n");
|
||||
return 1;
|
||||
}
|
||||
char* res = strptime(dateStr, "%d.%m.%Y", &t);
|
||||
if (res == NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user