/js/lib/Socket.IO-node/support/expresso/deps/jscoverage/js/jsdate.h
C++ Header | 124 lines | 41 code | 24 blank | 59 comment | 0 complexity | fa3dddd794b311aa4804c9d7aa4e38b0 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.1, MPL-2.0-no-copyleft-exception, BSD-3-Clause
1/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- 2 * 3 * ***** BEGIN LICENSE BLOCK ***** 4 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 5 * 6 * The contents of this file are subject to the Mozilla Public License Version 7 * 1.1 (the "License"); you may not use this file except in compliance with 8 * the License. You may obtain a copy of the License at 9 * http://www.mozilla.org/MPL/ 10 * 11 * Software distributed under the License is distributed on an "AS IS" basis, 12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 13 * for the specific language governing rights and limitations under the 14 * License. 15 * 16 * The Original Code is Mozilla Communicator client code, released 17 * March 31, 1998. 18 * 19 * The Initial Developer of the Original Code is 20 * Netscape Communications Corporation. 21 * Portions created by the Initial Developer are Copyright (C) 1998 22 * the Initial Developer. All Rights Reserved. 23 * 24 * Contributor(s): 25 * 26 * Alternatively, the contents of this file may be used under the terms of 27 * either of the GNU General Public License Version 2 or later (the "GPL"), 28 * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 29 * in which case the provisions of the GPL or the LGPL are applicable instead 30 * of those above. If you wish to allow use of your version of this file only 31 * under the terms of either the GPL or the LGPL, and not to allow others to 32 * use your version of this file under the terms of the MPL, indicate your 33 * decision by deleting the provisions above and replace them with the notice 34 * and other provisions required by the GPL or the LGPL. If you do not delete 35 * the provisions above, a recipient may use your version of this file under 36 * the terms of any one of the MPL, the GPL or the LGPL. 37 * 38 * ***** END LICENSE BLOCK ***** */ 39 40/* 41 * JS Date class interface. 42 */ 43 44#ifndef jsdate_h___ 45#define jsdate_h___ 46 47JS_BEGIN_EXTERN_C 48 49extern JSClass js_DateClass; 50 51extern JSObject * 52js_InitDateClass(JSContext *cx, JSObject *obj); 53 54/* 55 * These functions provide a C interface to the date/time object 56 */ 57 58/* 59 * Construct a new Date Object from a time value given in milliseconds UTC 60 * since the epoch. 61 */ 62extern JS_FRIEND_API(JSObject*) 63js_NewDateObjectMsec(JSContext* cx, jsdouble msec_time); 64 65/* 66 * Construct a new Date Object from an exploded local time value. 67 * 68 * Assert that mon < 12 to help catch off-by-one user errors, which are common 69 * due to the 0-based month numbering copied into JS from Java (java.util.Date 70 * in 1995). js_DateSetMonth (below) likewise asserts month < 12. 71 */ 72extern JS_FRIEND_API(JSObject*) 73js_NewDateObject(JSContext* cx, int year, int mon, int mday, 74 int hour, int min, int sec); 75 76/* 77 * Detect whether the internal date value is NaN. (Because failure is 78 * out-of-band for js_DateGet*) 79 */ 80extern JS_FRIEND_API(JSBool) 81js_DateIsValid(JSContext *cx, JSObject* obj); 82 83extern JS_FRIEND_API(int) 84js_DateGetYear(JSContext *cx, JSObject* obj); 85 86extern JS_FRIEND_API(int) 87js_DateGetMonth(JSContext *cx, JSObject* obj); 88 89extern JS_FRIEND_API(int) 90js_DateGetDate(JSContext *cx, JSObject* obj); 91 92extern JS_FRIEND_API(int) 93js_DateGetHours(JSContext *cx, JSObject* obj); 94 95extern JS_FRIEND_API(int) 96js_DateGetMinutes(JSContext *cx, JSObject* obj); 97 98extern JS_FRIEND_API(int) 99js_DateGetSeconds(JSContext *cx, JSObject* obj); 100 101extern JS_FRIEND_API(void) 102js_DateSetYear(JSContext *cx, JSObject *obj, int year); 103 104extern JS_FRIEND_API(void) 105js_DateSetMonth(JSContext *cx, JSObject *obj, int month); 106 107extern JS_FRIEND_API(void) 108js_DateSetDate(JSContext *cx, JSObject *obj, int date); 109 110extern JS_FRIEND_API(void) 111js_DateSetHours(JSContext *cx, JSObject *obj, int hours); 112 113extern JS_FRIEND_API(void) 114js_DateSetMinutes(JSContext *cx, JSObject *obj, int minutes); 115 116extern JS_FRIEND_API(void) 117js_DateSetSeconds(JSContext *cx, JSObject *obj, int seconds); 118 119extern JS_FRIEND_API(jsdouble) 120js_DateGetMsecSinceEpoch(JSContext *cx, JSObject *obj); 121 122JS_END_EXTERN_C 123 124#endif /* jsdate_h___ */