4af9b1656dbcecf2dc7d71b108d4b1fc73716038
[projects/cmucl/cmucl.git] / src / lisp / time.c
1 /* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/time.c,v 1.3 2005/09/15 18:26:52 rtoy Rel $ */
2
3 /* Time support routines that are easier to do in C then in lisp. */
4
5 #include <stdio.h>
6 #include <time.h>
7 #include "lisp.h"
8
9 void
10 get_timezone(time_t when, int *minwest, boolean * dst)
11 {
12     struct tm ltm, gtm;
13     int mw;
14
15     ltm = *localtime(&when);
16     gtm = *gmtime(&when);
17
18     mw = ((gtm.tm_hour * 60) + gtm.tm_min) - ((ltm.tm_hour * 60) + ltm.tm_min);
19     if ((gtm.tm_wday + 1) % 7 == ltm.tm_wday)
20         mw -= 24 * 60;
21     else if (gtm.tm_wday == (ltm.tm_wday + 1) % 7)
22         mw += 24 * 60;
23     *minwest = mw;
24     *dst = ltm.tm_isdst;
25 }