c 언어..현재일자구하는거..질문입니다 ㅠ
글쓴이: qodwlql / 작성시간: 월, 2010/01/11 - 5:47오후
void Date(char *szCurr_Date)
{
struct tm *today;
time_t ltime;
time(<ime);
today = localtime(<ime);
if(today->tm_year > 99) {
today->tm_year -= 100;
}
sprintf(sDate, "20%02d%02d%02d", today->tm_year,today->tm_mon+1,today->tm_mday);
}
main(){
printf("date =[%d]" ,sDate );
}
이런 소스입니다 함수에서 값을 구하고
메인에서는 바로 그 값을 쓸수있게 하는건데..이게 자꾸 오류가나네요 ㅠ어떻게해야하나요?ㅠㅠ
Forums:
무슨에러이지 알려주셔야.
main에서 Data()함수를 호출하지도 않는데 어떻게 출력이 되는건가요?
그리고 tm new로 할당하셔야죠.
Date 함수내 sDate 가 선언이 안되어 있네요....
localtime()은 리턴값이 localtime함수 내부의 정적변수 포인터이므로 위와 같이 하는 것이 맞는듯 합니다.
* MSDN 함수설명입니다.
struct tm *localtime( const time_t *timer );
The gmtime, mktime, and localtime functions use the same single, statically allocated structure to hold their results.
감사합니다 덕분에
감사합니다 덕분에 해결했습니다^^
안녕하세요
연도를 구할때 100을 빼는 것보다 1900을 더해주는 것이 맞겠습니다.
tm 구조체의 tm_year는 1900년부터 이므로,
Date함수를 아래와 같이 수정하는 것이 맞겠는데요...
* time.h 헤더 파일 참조
strftime(sDate,
strftime(sDate, sizeof(sDate), "%Y%m%d", localtime(<ime));
OTL
댓글 달기