home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
vc98
/
crt
/
src
/
systime.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-06-17
|
2KB
|
92 lines
/***
*systime.c - _getsystime and _setsystime
*
* Copyright (c) 1991-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
* defines _getsystime() and _setsystime()
*
*******************************************************************************/
#include <cruntime.h>
#include <oscalls.h>
#include <time.h>
/***
*unsigned _getsystime(timestruc, milliseconds) - Get current system time
*
*Purpose:
*
*Entry:
struct tm * ptm - time structure
*
*Exit:
* milliseconds of current time
*
*Exceptions:
*
*******************************************************************************/
unsigned __cdecl _getsystime(struct tm * ptm)
{
SYSTEMTIME st;
GetLocalTime(&st);
ptm->tm_isdst = -1; /* mktime() computes whether this is */
/* during Standard or Daylight time. */
ptm->tm_sec = (int)st.wSecond;
ptm->tm_min = (int)st.wMinute;
ptm->tm_hour = (int)st.wHour;
ptm->tm_mday = (int)st.wDay;
ptm->tm_mon = (int)st.wMonth - 1;
ptm->tm_year = (int)st.wYear - 1900;
ptm->tm_wday = (int)st.wDayOfWeek;
/* Normalize uninitialized fields */
mktime(ptm);
return (st.wMilliseconds);
}
/***
*unsigned _setsystime(timestruc, milliseconds) - Set new system time
*
*Purpose:
*
*Entry:
* struct tm * ptm - time structure
* unsigned milliseconds - milliseconds of current time
*
*Exit:
* 0 if succeeds
* system error if fails
*
*Exceptions:
*
*******************************************************************************/
unsigned __cdecl _setsystime(struct tm * ptm, unsigned uMilliseconds)
{
SYSTEMTIME st;
/* Normalize uninitialized fields */
mktime(ptm);
st.wYear = (WORD)(ptm->tm_year + 1900);
st.wMonth = (WORD)(ptm->tm_mon + 1);
st.wDay = (WORD)ptm->tm_mday;
st.wHour = (WORD)(ptm->tm_hour);
st.wMinute = (WORD)ptm->tm_min;
st.wSecond = (WORD)ptm->tm_sec;
st.wMilliseconds = (WORD)uMilliseconds;
if (!SetLocalTime(&st)) {
return ((int)GetLastError());
}
return (0);
}