come fai a sopportarmi lo sai solo tu!.. manco io mi sopporterei.. xd
questo il nuovo codice..
#include <stdio.h>
#include <stdlib.h>
int main()
{
int g1,m1,a1;
int g2,m2,a2;
printf("Inserisci la prima data (gg/mm/aaaa): ");
scanf("%d/%d/%d",&g1,&m1,&a1);
printf("Inserisci la seconda data (gg/mm/aaaa): ");
scanf("%d/%d/%d",&g2,&m2,&a2);
printf("Dal %d/%d/%d al %d/%d/%d sono trascorsi %d giornin",g1,m1,a1,g2,m2,a2,data_diff(g1,m1,a1,g2,m2,a2));
return 0;
}
int data_diff(int g1,int m1,int a1,int g2,int m2,int a2){
int gg=0;/*giorni trascorsi*/int i,j,end=1;
if(a1==a2){
gg+=g_m(m1)-g1;for (j=m1+1;j<=12;j++){gg+=g_m(j);}
}else{
i=a1;
while(end){
printf("%d giorni fin'ora: %dn",i,gg);
if(bisestile(i)){gg++;/*printf("bisestite +1n");*/}
if (i==a1){
//printf("=al primon");
gg+=g_m(m1)-g1;
for (j=m1+1;j<=12;j++){gg+=g_m(j);}
}
if (i==a2){
//printf("=al ultimon");
gg+=g2;
for (j=1;j<m2;j++){gg+=g_m(j);}
end=0;
}
if ((i!=a1)&&(i!=a2)){
for (j=1;j<=12;j++){gg+=g_m(i);}
}
i++;
}
}
return gg;
}
int g_m(int me){
switch (me){
case 1: return 31; break;
case 2: return 28; break;
case 3: return 31; break;
case 4: return 30; break;
case 5: return 31; break;
case 6: return 30; break;
case 7: return 31; break;
case 8: return 31; break;
case 9: return 30; break;
case 10: return 31; break;
case 11: return 30; break;
case 12: return 31; break;
}
}
int bisestile(int anno){
if (anno%100==0){
if ((anno%4==0)&&(anno%400==0)){
return 1;
}else{
return 0;
}
}else{
if (anno%4==0){
return 1;
}else{
return 0;
}
}
}
dice che io ho 463xxx giorni... boh!.. mo lo rileggo piano piano...