말 그대로 project의 upgrade판//
함수는 앞의 것을 그대로 쓴다.
현재 날짜는 일일이 입력할 필요 없이 시스템에서 따와서 쓰고,
나의 생일을 입력하여
날짜를 계산 후에....
빼 주면 끝!
그런데 태어난 날이 3월 3일이고 오늘이 3월 5일이라면, 살아온 일수를 3일로 친다.
그래서 구한 값에 1을 더해주면
완료!
#include<stdio.h>
#include<time.h>
long t_days(int, int, int);
int main()
{
int byear, bmonth, bday, bdays;
int pyear, pmonth, pday, pdays;
time_t timer;
struct tm *t;
timer=time(NULL);//현재 시각을 초 단위로 얻기
t=localtime(&timer);//초 단위의 시간을 분리하여 구조체에 넣기
pyear=t->tm_year+1900;
pmonth=t->tm_mon+1;
pday=t->tm_mday;
printf("현재 년 : %d\n", pyear);
printf("현재 월 : %d\n", pmonth);
printf("현재 일 : %d\n", pday);
printf("\nInput birth year : ");
scanf("%d", &byear);
printf("Input birth month : ");
scanf("%d", &bmonth);
printf("Input birth day : ");
scanf("%d", &bday);
pdays=t_days(pyear, pmonth, pday);
bdays=t_days(byear, bmonth, bday);
printf("\n%d년 %d월 %d일부터 지금까지 살아온 총 날 수는......\n******%d일입니다.\n", byear, bmonth, bday, pdays-bdays+1);
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;
return tdays;
}
'studio > programmazione' 카테고리의 다른 글
[C/C++] OPP의 개요 - Project (0) | 2010.06.23 |
---|---|
[C/C++] OPP의 개요 - Training (0) | 2010.06.23 |
[C/C++] OOP의 개요 - Core (2) | 2010.06.23 |
[C/C++] [project] 1년 1월 1일부터 입력받은 일까지의 경과 일수 구하기 (0) | 2010.04.14 |
우리나라 홈페이지 디자인에 관한 생각 (0) | 2009.12.07 |