C 런타임 라이브러리 FIX: DST 버그

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

214661
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
현상
C-런타임 라이브러리 날짜/시간 함수 일광 절약 시간제 시작 2001년 4월 첫째 주 동안 정확한 시간을 계산하는 못할 수 있습니다. 버그 자체는 다음에서 일주일 후에 해결합니다 일요일입니다. 이 버그는 2000년 문제가 관련이 없습니다.
원인
버그는 C-런타임 라이브러리 cvtdate 도우미 함수 논리 오류로 인해 발생합니다.
현재 상태
Microsoft는 이 문서의 시작 부분에 나열한 Microsoft 제품에서 버그가 이 문제를 확인했습니다. 이 버그는 Visual Studio 6.0 서비스 팩 3에서 수정되었습니다. Visual Studio 서비스 팩에 대한 자세한 내용은 Microsoft 기술 자료에 있는 다음 문서를 참조하십시오.

194022 INFO: Visual Studio 6.0 Service Packs, What, Where, Why

194295 HOWTO: Tell That Visual Studio 6.0 Service Packs Are Installed
추가 정보

문제를 재현하는 방법

다음 샘플 프로그램을 문제를 일으키는:
// ----------------- start of sample program -------------------------// Compiler switches needed : none.#include <time.h>;#include <stdio.h>#include <stdlib.h>#include <stdarg.h>int main (){    struct tm ltm;    time_t tstamp = 0;    ltm.tm_year = 90;	/* First valid year .*/     ltm.tm_mon = 3;		/* April. */     ltm.tm_mday = 1;	/* 1st of the month. */     ltm.tm_hour = 3;	/* At 3:00 am. */     ltm.tm_min = 0;    ltm.tm_sec = 0;    ltm.tm_wday =0;    ltm.tm_yday = 0;    while (ltm.tm_year <= 2005)    {        ltm.tm_isdst = -1;	// mktime indirectly calls cvtdate which has the logic bug.	tstamp = mktime(&ltm);	/* If it's Sunday April 1st, it should also be DST */ 	if (!ltm.tm_wday && !ltm.tm_isdst)	{	    printf("April 01 is the first Sunday in April, %d  \             -it should be DST but tm_isdst says it's \             not!\n", 1900+ltm.tm_year);	    while (!ltm.tm_isdst)	    {		ltm.tm_mday++;		ltm.tm_isdst=-1;		tstamp = mktime(&ltm);	    }	    printf("\tDST is reported as starting on  \             %d/%d/%d\n", 1+ltm.tm_mon, ltm.tm_mday, \ 	    1900+ltm.tm_year);	            ltm.tm_mday = 1;	}	        ltm.tm_year++;	    }    return 0;}// ----------------- end  of sample program ---------------------------				
y2k year2000

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 214661 - 마지막 검토: 02/23/2014 05:31:55 - 수정: 2.4

Microsoft Visual C++ 4.1 Subscription, Microsoft Visual C++ 4.2 Enterprise Edition, Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 6.0 Enterprise Edition, Microsoft Visual C++ 4.2 Professional Edition, Microsoft Visual C++ 5.0 Professional Edition, Microsoft Visual C++ 6.0 Professional Edition, Microsoft Visual C++, 32-bit Learning Edition 6.0

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbcrt kbfix kbvs600sp3fix KB214661 KbMtko
피드백