|
|
1.1 root 1: /* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2: *
3: * The contents of this file are subject to the Netscape Public
4: * License Version 1.1 (the "License"); you may not use this file
5: * except in compliance with the License. You may obtain a copy of
6: * the License at http://www.mozilla.org/NPL/
7: *
8: * Software distributed under the License is distributed on an "AS
9: * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
10: * implied. See the License for the specific language governing
11: * rights and limitations under the License.
12: *
13: * The Original Code is Mozilla Communicator client code, released
14: * March 31, 1998.
15: *
16: * The Initial Developer of the Original Code is Netscape
17: * Communications Corporation. Portions created by Netscape are
18: * Copyright (C) 1998 Netscape Communications Corporation. All
19: * Rights Reserved.
20: *
21: * Contributor(s):
22: *
23: * Alternatively, the contents of this file may be used under the
24: * terms of the GNU Public License (the "GPL"), in which case the
25: * provisions of the GPL are applicable instead of those above.
26: * If you wish to allow use of your version of this file only
27: * under the terms of the GPL and not to allow others to use your
28: * version of this file under the NPL, indicate your decision by
29: * deleting the provisions above and replace them with the notice
30: * and other provisions required by the GPL. If you do not delete
31: * the provisions above, a recipient may use your version of this
32: * file under either the NPL or the GPL.
33: */
34:
35: #ifndef prmjtime_h___
36: #define prmjtime_h___
37: /*
38: * PR date stuff for mocha and java. Placed here temporarily not to break
39: * Navigator and localize changes to mocha.
40: */
41: #include <time.h>
42: #include "jslong.h"
43: #ifdef MOZILLA_CLIENT
44: #include "jscompat.h"
45: #endif
46:
47: JS_BEGIN_EXTERN_C
48:
49: typedef struct PRMJTime PRMJTime;
50:
51: /*
52: * Broken down form of 64 bit time value.
53: */
54: struct PRMJTime {
55: JSInt32 tm_usec; /* microseconds of second (0-999999) */
56: JSInt8 tm_sec; /* seconds of minute (0-59) */
57: JSInt8 tm_min; /* minutes of hour (0-59) */
58: JSInt8 tm_hour; /* hour of day (0-23) */
59: JSInt8 tm_mday; /* day of month (1-31) */
60: JSInt8 tm_mon; /* month of year (0-11) */
61: JSInt8 tm_wday; /* 0=sunday, 1=monday, ... */
62: JSInt16 tm_year; /* absolute year, AD */
63: JSInt16 tm_yday; /* day of year (0 to 365) */
64: JSInt8 tm_isdst; /* non-zero if DST in effect */
65: };
66:
67: /* Some handy constants */
68: #define PRMJ_USEC_PER_SEC 1000000L
69: #define PRMJ_USEC_PER_MSEC 1000L
70:
71: /* Return the current local time in micro-seconds */
72: extern JSInt64
73: PRMJ_Now(void);
74:
75: /* get the difference between this time zone and gmt timezone in seconds */
76: extern JSInt32
77: PRMJ_LocalGMTDifference(void);
78:
79: /* Format a time value into a buffer. Same semantics as strftime() */
80: extern size_t
81: PRMJ_FormatTime(char *buf, int buflen, char *fmt, PRMJTime *tm);
82:
83: /* Get the DST offset for the local time passed in */
84: extern JSInt64
85: PRMJ_DSTOffset(JSInt64 local_time);
86:
87: JS_END_EXTERN_C
88:
89: #endif /* prmjtime_h___ */
90:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.