2013年8月14日水曜日

日数計算プログラム

akira@dynabookAZ:~$ cd arm1304
akira@dynabookAZ:~/arm1304$ gcc -o b014 b014.c -lm
akira@dynabookAZ:~/arm1304$ ./b014
now example:> 20130403:> 20130806
old example:> 19020101:> 19450806
Answer Days: 24837
akira@dynabookAZ:~/arm1304$


「あの」日から68年後の日数は24837日なのか



#include <stdio.h>

long daysA();

main(){

   char s1[30]="now example:> 20130403:> ";
   char s2[30]="old example:> 19020101:> ";
   char s3[30]="Answer Days: %ld\n";
   char s4[30]="%s";
   long a1,a2,a3;

   printf(s4,s1); a2=daysA();
   printf(s4,s2); a3=daysA();

   a1=a2-a3;
   printf(s3,a1);
}

long daysA(){

   long l,l1,yy,mm,dd;
   long mm1[15]={0,0,31,59,90,120,151,
                 181,212,243,273,304,334,365,396};
   char d1[15]="%s";
   char d3[15]="a=%ld\n";
   char d2[30]="                    ";

   scanf(d1,d2);
   yy=(d2[0]-48)*1000+(d2[1]-48)*100+(d2[2]-48)*10+(d2[3]-48);
   mm=(d2[4]-48)*10+(d2[5]-48);
   dd=(d2[6]-48)*10+(d2[7]-48);

   /*printf(d3,yy);*/

   if(mm>=3){
      l1=yy-1900;
      l =l1*365+mm1[mm]+dd+l1/4;
   }
   else{
      l1=yy-1901;
      l =l1*365+mm1[mm+12]+dd+l1/4;
   }
   return l;
}


0 件のコメント:

コメントを投稿