본문 바로가기

studio/programmazione

[C/C++] [project] 1년 1월 1일부터 입력받은 일까지의 경과 일수 구하기


드디어 감이 좀 돌아온 것 같다...!!

별 문제 없이 프로젝트를 해결했다. 중간에 이상한 게 있긴 했지만...

근데, 좀 귀찮게 한 것 같다. 정아 거 보니까 깔끔하던데...

그럼, 그걸 보고 보완한 걸 써 보겠다.


#include<stdio.h>
long t_days(int, int, int);

int main()
{
 int year, month, day;
 
 printf("Input year : ");
 scanf("%d", &year);
 printf("Input month : ");
 scanf("%d", &month);
 printf("Input day : ");
 scanf("%d", &day);
 
 t_days(year, month, day);
 
 return 0;
}

long t_days(int year, int month, int day)
{
 int i, tdays=0;
 for(i=1;i<year;i++)
 {
  if((i%4==0&&i%100!=0)||(i%400==0))
   tdays+=366;
  else
   tdays+=365;
 }
 
 for(i=1;i<month;i++)
 {
  if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
   tdays+=31;
  else if(i==4||i==6||i==9||i==11)
   tdays+=30;
  else
  {
   if((i%4==0&&i%100!=0)||(i%400==0))
   tdays+=29;
  else
   tdays+=28;
  }
 }
 
 tdays+=day;
 
 printf("\n\n1년 1월 1일부터 지금까지 경과한 총 일수는......\n======%d입니다.", tdays);
 
 return tdays;
}