[Per la descrizione e l'esempio di questa funzione andare su questo link. ]
data inserimento_dd(data data)
{ //struct data data;
int temp_1,temp_2;
char dec[2],u[2];
do{
dec[0]=getch();
temp_1=atoi(dec);
if((temp_1>3))
{
printf("%d/",temp_1);
data.gg=temp_1;
dec[0]=getch();
temp_1=atoi(dec);
if(temp_1>1)
{
printf("%d/",temp_1);
data.mm=temp_1;
scanf("%d",&data.anno);
}
else
{
printf("%d",temp_1);
u[0]=getch();
temp_2=atoi(u);
//evita l'inserimento di una data superiore a 12
if(temp_1!=0)
while(temp_2>2)
{
u[0]=getch();
temp_2=atoi(u);
}
printf("%d/",temp_2);
data.mm=(temp_1*10)+temp_2;
scanf("%d",&data.anno);
}
}
else
{
printf("%d",temp_1);
u[0]=getch();
temp_2=atoi(u);
printf("%d/",temp_2);
data.gg=(temp_1*10)+temp_2;
dec[0]=getch();
temp_1=atoi(dec);
if(temp_1>1)
{
printf("%d/",temp_1);
data.mm=temp_1;
scanf("%d",&data.anno);
}
else
{
printf("%d",temp_1);
u[0]=getch();
temp_2=atoi(u);
//evita l'inserimento di una data superiore a 12
if(temp_1!=0)
while(temp_2>2)
{
u[0]=getch();
temp_2=atoi(u);
}
printf("%d/",temp_2);
data.mm=(temp_1*10)+temp_2;
scanf("%d",&data.anno);
}
}
if(ctrl_data(data)==0)
{
printf("\n!!!ERRORE!!! Data non valida! !!!ERRORE!!!\n\n");
}
} while(ctrl_data(data)==0);
return data;
}