날짜스탬프를 이용한 날짜계산 함수
Creator
질문 제목 : 입력 받은 날짜의 30일 뒤 날짜를 출력하는 함수입니다.질문 내용 :
mktime함수를 이용해서 30일 뒤의 날짜를 출력하는 함수를 구현해봤는데
출력결과 추가가 되지않고 입력받은 날짜가 두번 출력됩니다.mktime함수가 time_t형(날짜 스탬프)을 리턴해주니까
30일 뒤의 스탬프값은 +60*60*24*30해준거라 생각하고
localtime함수를 이용해서 출력해봤는데
똑같은 값이 두번 출력됩니다.
문제점이 뭔가요?????????#include stdio.h
#include stdlib.h
#include time.h
#define limit 3
int main (void)
{
int i,cnt=1;
char *week[] = {일,월,화,수,목,금,토};
time_t stamp[limit],stamp_return[limit];
struct tm time[limit];
struct tm *ptr_time[limit], *ptr_time_return[limit];
for(i=0; ilimit; i++)
{
printf(-----%d-----\n,cnt++);
printf(년도를 입력\n);
scanf(%d,&time[i].tm_year);
printf(달을 입력\n);
scanf(%d,&time[i].tm_mon);
printf(일을 입력\n);
scanf(%d,&time[i].tm_mday);
printf(시간을 입력\n);
scanf(%d,&time[i].tm_hour);
printf(분을 입력\n);
scanf(%d,&time[i].tm_min);
printf(초를 입력\n);
scanf(%d,&time[i].tm_sec);
}
for(i=0;ilimit;i++)
{
stamp[i] = mktime(&time[i]);
ptr_time[i] = localtime(&stamp[i]); stamp_return[i] = mktime(&time[i])+60*60*24*30; ////60*60*24*30 30뒤의 날짜스탬프.
ptr_time_return[i] = localtime(&stamp_return[i]); printf(%4d %2d %2d %s %2d %2d %2d\n,ptr_time[i]-tm_year+1900,
ptr_time[i]-tm_mon+1,
ptr_time[i]-tm_mday,
week[ptr_time[i]- tm_wday],
ptr_time[i]-tm_hour,
ptr_time[i]-tm_min,
ptr_time[i]-tm_sec);
printf(%4d %2d %2d %s %2d %2d %2d\n,ptr_time_return[i]-tm_year+1900,
ptr_time_return[i]-tm_mon+1,
ptr_time_return[i]-tm_mday,
week[ptr_time_return[i]- tm_wday],
ptr_time_return[i]-tm_hour,
ptr_time_return[i]-tm_min,
ptr_time_return[i]-tm_sec);
}
system(pause);
return 0;
}코드는