FIX: C ??-???? ????????? ??? ?????? ??? ??? ???

???? ?????? ???? ??????
???? ID: 214661 - ?? ???????? ?? ?????? ??? ?? ?? ???? ???? ???? ??.
?? ???? ???????? ?? ???? ??? ??. ??? "???? ??" ???? ?? ?????????? ???? ??? ?? ?? ?? ??????? ???? ???? ?????.
??? ?? ??????? ???? | ??? ?? ??????? ????

?? ????? ??

?????

C-??-???? ????????? ??????/??? ?????? ?????? ??? ??? ?????? 1, 2001 ?? ???? ?? ????? ?????? ?? ????? ??? ??? ?? ???? ???? ??? ???? ?? ???? ??? ?? ????? ?? ??????, ?? ????? ???? ?? ??? corrects ??????? ?? ?? ???? 2000 ?????? ?? ??????? ???? ???

????

?? ?? ???? ?????? cvtdate ????? ?????? C-??-???? ????????? ??? ??? ????? ?????? ???

??????

Microsoft ?? ?????? ?? ?? ?? ?? ???? ?? ???? ??? ???????? Microsoft ???????? ??? ?? ??? ????? ?? ?? ???? Visual Studio 6.0 ?????? ??? 3 ??? ??? ???? ??? ???Visual Studio ?????? ??? ?? ???? ??? ???? ??????? ?? ??? ????? ????? ?????? ?? Microsoft ???????? ??? ?????:

194022 ???????: Visual Studio 6.0 ?????? ???, ????, ????, ?????

194295 HOWTO: ?? Visual Studio 6.0 ?????? ??? ??????? ???? ?????

???? ???????

??????? ?? ???: ??????? ???? ?? ??? ???

????? ????? ????????? reproduces ?????? ??:

// ----------------- 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 ---------------------------
				

??????

HTTP://MSDN.Microsoft.com/en-us/visualc/default.aspx

???

???? ID: 214661 - ????? ???????: 23 ????? 2014 - ??????: 2.0
???? ???? ???? ??:
  • Microsoft Visual C++ 4.2 Enterprise Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
??????: 
kbnosurvey kbarchive kbhotfixserver kbqfe kbbug kbcrt kbfix kbvs600sp3fix kbmt KB214661 KbMthi
???? ?????? ????????
??????????: ?? ???? ?? ???? ??????? ?? ????? ?? Microsoft ????-?????? ?????????? ?????? ?????? ???? ??? ??. Microsoft ???? ??? ????-???????? ?? ????-???????? ????? ?????? ?? ???? ???????? ???? ?? ???? ????? ????? ??? ?? ??? ?????? ?? ???? ???? ???? ??? ????? ??. ???????, ????-???????? ???? ????? ???? ???? ???? ???. ?????, ????????, ?????-???? ?? ??????? ?? ???????? ?? ???? ???, ???? ?? ??? ?????? ???? ???? ??? ????? ??? ?? ???? ??. Microsoft ??????? ??? ???? ?? ?????? ?? ??????????, ????????? ?? ??? ?????? ?? ???? ????? ?? ???? ???????? ?? ??? ???? ????? ?? ??? ????????? ???? ??. Microsoft ????-?????? ?????????? ?? ????? ?????? ?? ?? ??? ??.
?????????? ?? ??????? ????????? ??????? ??:214661

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com