Annotation of embedaddon/php/ext/calendar/cal_unix.c, revision 1.1.1.3
1.1 misho 1: /*
2: +----------------------------------------------------------------------+
3: | PHP Version 5 |
4: +----------------------------------------------------------------------+
1.1.1.3 ! misho 5: | Copyright (c) 1997-2014 The PHP Group |
1.1 misho 6: +----------------------------------------------------------------------+
7: | This source file is subject to version 3.01 of the PHP license, |
8: | that is bundled with this package in the file LICENSE, and is |
9: | available through the world-wide-web at the following url: |
10: | http://www.php.net/license/3_01.txt |
11: | If you did not receive a copy of the PHP license and are unable to |
12: | obtain it through the world-wide-web, please send a note to |
13: | license@php.net so we can mail you a copy immediately. |
14: +----------------------------------------------------------------------+
15: | Authors: Shane Caraveo <shane@caraveo.com> |
16: | Colin Viebrock <colin@easydns.com> |
17: | Hartmut Holzgraefe <hholzgra@php.net> |
18: +----------------------------------------------------------------------+
19: */
20: /* $Id: */
21:
22: #include "php.h"
23: #include "php_calendar.h"
24: #include "sdncal.h"
25: #include <time.h>
26:
27: /* {{{ proto int unixtojd([int timestamp])
28: Convert UNIX timestamp to Julian Day */
29: PHP_FUNCTION(unixtojd)
30: {
31: time_t ts = 0;
32: struct tm *ta, tmbuf;
33:
34: if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &ts) == FAILURE) {
35: return;
36: }
37:
38: if (!ts) {
39: ts = time(NULL);
40: } else if (ts < 0) {
41: RETURN_FALSE;
42: }
43:
44: if (!(ta = php_localtime_r(&ts, &tmbuf))) {
45: RETURN_FALSE;
46: }
47:
48: RETURN_LONG(GregorianToSdn(ta->tm_year+1900, ta->tm_mon+1, ta->tm_mday));
49: }
50: /* }}} */
51:
52: /* {{{ proto int jdtounix(int jday)
53: Convert Julian Day to UNIX timestamp */
54: PHP_FUNCTION(jdtounix)
55: {
56: long uday;
57:
58: if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &uday) == FAILURE) {
59: return;
60: }
61: uday -= 2440588 /* J.D. of 1.1.1970 */;
62:
63: if (uday < 0 || uday > 24755) { /* before beginning of unix epoch or behind end of unix epoch */
64: RETURN_FALSE;
65: }
66:
67: RETURN_LONG(uday * 24 * 3600);
68: }
69: /* }}} */
70:
71: /*
72: * Local variables:
73: * tab-width: 4
74: * c-basic-offset: 4
75: * End:
76: * vim600: sw=4 ts=4 fdm=marker
77: * vim<600: sw=4 ts=4
78: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>