자리수 맞게 숫자출력???
글쓴이: zxcvbnm / 작성시간: 월, 2003/09/15 - 11:11오전
소스분석을 하고 있는데요. 궁금한게 있어서요.
20030909212523733
위에것은 아래 코드의 결과 값입니다. 17자리죠... 이것을 제일 마지막 숫자한자리를 제거하고 2003090921252373 이렇게 16자리로 출력하고 싶은데 잘 안되네요.
도와주세요.
struct tm *dateTime;
struct timeb tpd;
time_t clock;
ftime( &tpd );
clock = tpd.time;
dateTime = localtime(&clock);
printf("\n\n%4d%02d%02d%02d%02d%02d%2d\n\n", dateTime->tm_year+1900, dateTime->tm_mon+1, dateTime->tm_mday,dateTime->tm_hour, dat
eTime->tm_min, dateTime->tm_sec, tpd.millitm);
Forums:
tpd.millitm 가 3자리로 출력이 되어서 그렇습니다.2자리
tpd.millitm 가 3자리로 출력이 되어서 그렇습니다.
2자리로 출력할려면 10으로 나눠서 작은 자리수를 버려야 겠네요..
tpd.millitm/10 하세요.
[quote="moonzoo"]tpd.millitm 가 3자리로 출력이
제가 그렇게 답했다가, 수업이 시작해서 지웠는데,
3자리니깐 10으로 나누면 안됩니다.. :)
tpd.millitm > 99 ? tpd.millitm / 10 : tpd.millitm
마지막에 %02d 로 포메팅하고요..
[quote="fliers"][code:1]tpd.millitm &g
위 코드는 꽤 이상하군요.
마지막 자리수가 30 이라면 30을 의미할 수도 있지만 300-309를 의미할 수도 있습니다.
그냥 10으로 나누고 %02d로 찍으면 됩니다. 이 경우 03은 30-39, 30은 300-309를 의미합니다.
[quote="cdpark"]마지막 자리수가 30 이라면 30을 의미할
에구, 잘 못 생각했던 것 같군요 -.-;;
이 소스를 보고 하시면 됩니다.
/* 서버의 날자와 시간을 가지고온다. 시작 */
time_t Time;
struct tm *Tm;
char Date[9];
char recTime[7];
time( &Time);
Tm = localtime( &Time);
/*sprintf( Date, "%04d%02d%02d%02d%02d%02d", Tm->tm_year + 1900, Tm->tm_mon + 1, Tm->tm_mday, Tm->tm_hour, Tm->tm_min, Tm->tm_sec);*/
sprintf( Date, "%04d%02d%02d", Tm->tm_year + 1900, Tm->tm_mon + 1, Tm->tm_mday);
sprintf( recTime, "%02d%02d%02d", Tm->tm_hour, Tm->tm_min, Tm->tm_sec);
printf("\n");
printf("현재 서버날자 : [%s]\n",Date);
printf("현재 서버시간 : [%s]\n",recTime);
sprintf(str,
sprintf(str, "%4d%02d%02d%02d%02d%02d%2d", dateTime->tm_year+1900, dateTime->tm_mon+1, dateTime->tm_mday,dateTime->tm_hour, dateTime->tm_min, dateTime->tm_sec, tpd.millitm);
str[strlen(str) - 1] = null;
printf("%s", str);
댓글 달기