stk/Tcl/tclWinTime.c

128 lines
2.6 KiB
C
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* tclWinTime.c --
*
* Contains Windows specific versions of Tcl functions that
* obtain time values from the operating system.
*
* Copyright 1995 by Sun Microsystems, Inc.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* SCCS: @(#) tclWinTime.c 1.4 96/04/02 18:49:06
*/
#include "tclInt.h"
#include "tclPort.h"
/*
*----------------------------------------------------------------------
*
* TclGetSeconds --
*
* This procedure returns the number of seconds from the epoch.
* On most Unix systems the epoch is Midnight Jan 1, 1970 GMT.
*
* Results:
* Number of seconds from the epoch.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
unsigned long
TclGetSeconds()
{
return (unsigned long) time((time_t *) NULL);
}
/*
*----------------------------------------------------------------------
*
* TclGetClicks --
*
* This procedure returns a value that represents the highest
* resolution clock available on the system. There are no
* guarantees on what the resolution will be. In Tcl we will
* call this value a "click". The start time is also system
* dependant.
*
* Results:
* Number of clicks from some start time.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
unsigned long
TclGetClicks()
{
return GetTickCount();
}
/*
*----------------------------------------------------------------------
*
* TclGetTimeZone --
*
* Determines the current timezone. The method varies wildly
* between different Platform implementations, so its hidden in
* this function.
*
* Results:
* Hours east of GMT.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
int
TclGetTimeZone (currentTime)
unsigned long currentTime;
{
static int setTZ = 0;
int timeZone;
if (!setTZ) {
tzset();
setTZ = 1;
}
timeZone = _timezone / 60;
return timeZone;
}
/*
*----------------------------------------------------------------------
*
* TclGetTime --
*
* Gets the current system time in seconds and microseconds
* since the beginning of the epoch: 00:00 UCT, January 1, 1970.
*
* Results:
* Returns the current time in timePtr.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
void
TclGetTime(timePtr)
Tcl_Time *timePtr; /* Location to store time information. */
{
struct timeb t;
ftime(&t);
timePtr->sec = t.time;
timePtr->usec = t.millitm * 1000;
}