windows-nt/Source/XPSP1/NT/ds/netapi/netlib/timezone.c
2020-09-26 16:20:57 +08:00

84 lines
2.1 KiB
C

/*++
Copyright (c) 1991-1993 Microsoft Corporation
Module Name:
TimeZone.c
Abstract:
This file just contains NetpLocalTimeZoneOffset(). (It is the only
NetLib time function used by SRVSVC.DLL at this time, and ChuckL wants
to keep that DLL as small as possible.)
Author:
JR (John Rogers, JohnRo@Microsoft) 20-Aug-1992
Environment:
Interface is portable to any flat, 32-bit environment.
Uses Win32 typedefs.
Requires ANSI C extensions: slash-slash comments, long external names.
Revision History:
20-Aug-1992 JohnRo
RAID 2920: Support UTC timezone in net code.
01-Oct-1992 JohnRo
RAID 3556: Added NetpSystemTimeToGmtTime() for DosPrint APIs.
15-Apr-1993 Danl
Fixed NetpLocalTimeZoneOffset so that it uses the windows calls and
obtains the correct bias.
14-Jun-1993 JohnRo
RAID 13080: Allow repl between different timezones.
Also, DanL asked me to remove printf() call.
18-Jun-1993 JohnRo
RAID 13594: Extracted NetpLocalTimeZoneOffset() so srvsvc.dll doesn't
get too big.
Use NetpKdPrint() where possible.
--*/
// These must be included first:
#include <windows.h>
// These may be included in any order:
#include <netdebug.h> // NetpAssert(), NetpKdPrint(), FORMAT_ equates.
#include <prefix.h> // PREFIX_ equates.
#include <timelib.h> // My prototypes.
LONG // Number of seconds from UTC. Positive values for west of Greenwich,
// negative values for east of Greenwich.
NetpLocalTimeZoneOffset(
VOID
)
{
TIME_ZONE_INFORMATION tzInfo;
LONG bias;
switch (GetTimeZoneInformation(&tzInfo)) {
case TIME_ZONE_ID_DAYLIGHT:
bias = tzInfo.Bias + tzInfo.DaylightBias;
break;
case TIME_ZONE_ID_STANDARD:
bias = tzInfo.Bias + tzInfo.StandardBias;
break;
case TIME_ZONE_ID_UNKNOWN:
bias = tzInfo.Bias;
break;
default:
NetpKdPrint(( PREFIX_NETLIB
"NetpLocalTimeZoneOffset: GetTimeZoneInformation failed.\n" ));
return(0);
}
bias *= 60;
return(bias);
} // NetpLocalTimeZoneOffset