[Python-checkins] CVS: python/nondist/sandbox/datetime datetime.h,NONE,1.1

Fred L. Drake fdrake@users.sourceforge.net
Mon, 04 Mar 2002 12:41:26 -0800


Update of /cvsroot/python/python/nondist/sandbox/datetime
In directory usw-pr-cvs1:/tmp/cvs-serv5607

Added Files:
	datetime.h 
Log Message:
Preliminary header for the C implementation of the date/time type.

--- NEW FILE: datetime.h ---
/*  datetime.h
 */

#ifndef DATETIME_H
#define DATETIME_H

#define _PyDateTime_DATA_SIZE 12

typedef struct
{
    PyObject_HEAD;
    unsigned char data[_PyDateTime_DATA_SIZE];
}  PyDateTime_Object;


extern DL_IMPORT(PyTypeObject) PyDateTime_Type;


#define PyDateTime_GET_YEAR(o)        (((PyDateTime_Object*)o)->data[0] << 8  \
                                       | ((PyDateTime_Object*)o)->data[1])
#define PyDateTime_GET_MONTH(o)       (((PyDateTime_Object*)o)->data[2])
#define PyDateTime_GET_DAY(o)         (((PyDateTime_Object*)o)->data[3])
#define PyDateTime_GET_HOUR(o)        (((PyDateTime_Object*)o)->data[4])
#define PyDateTime_GET_MINUTE(o)      (((PyDateTime_Object*)o)->data[5])
#define PyDateTime_GET_SECOND(o)      (((PyDateTime_Object*)o)->data[6])
#define PyDateTime_GET_MICROSECOND(o) (((PyDateTime_Object*)o)->data[7] << 16 \
                                       | ((PyDateTime_Object*)o)->data[8] << 8\
                                       | ((PyDateTime_Object*)o)->data[9])
#define PyDateTime_GET_TZOFFSET(o)    ((signed int)                           \
                                       (((PyDateTime_Object*)o)->data[10] << 8\
                                        | ((PyDateTime_Object*)o)->data[11]))

#endif