fork download
  1. #include <stdio.h>//第0講演習 3-3
  2.  
  3. int is_uruu(int year){
  4. if(year%4==0){
  5. if(year%100==0){
  6. if(year%400==0) return 1;
  7. else return 0;
  8. }
  9. else return 1;
  10. }
  11. else return 0;
  12. }
  13. int maxday_of_month(int y, int m){
  14. if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12){
  15. return 31;
  16. }
  17. else if(m==4 || m==6 || m==9 || m==11){
  18. return 30;
  19. }
  20. else if(m==2){
  21. int a;
  22. a=is_uruu(y);
  23. if(a==1) return 29;
  24. else if (a==0) return 28;
  25. }
  26. }
  27. int days_from(int y, int m, int d){
  28. int i,s=0;
  29. for(i=1;i<m;i++){
  30. s=s+maxday_of_month(y,i);
  31. }
  32. return s+d;
  33. }
  34. int hi_year(int y){
  35. int i,j=0,a;
  36. for(i=1900;i<y;i++){
  37. a=is_uruu(i);
  38. if(a==1) j=j+366;
  39. else if(a==0) j=j+365;
  40. }
  41. return j;
  42. }
  43. int main() {
  44. int year,month,day,a,b,sum;
  45. scanf("%d %d %d",&year,&month,&day);
  46. a=hi_year(year);
  47. b=days_from(year,month,day);
  48. sum=a+b-1;
  49. printf("西暦%d年%d月%d日と西暦1900年1月1日は,%d日離れている",year,month,day,sum);
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0.01s 5308KB
stdin
2002 1 1
stdout
西暦2002年1月1日と西暦1900年1月1日は,37255日離れている