[Python-checkins] python/nondist/sandbox/datetime datetime.c,1.12,1.13
gvanrossum@users.sourceforge.net
gvanrossum@users.sourceforge.net
Thu, 21 Nov 2002 09:59:30 -0800
- Previous message: [Python-checkins] python/dist/src/Doc/lib libtempfile.tex,1.19,1.20
- Next message: [Python-checkins] python/nondist/sandbox/datetime datetime.h,1.5,1.6 obj_date.c,1.1,1.2 obj_datetime.c,1.1,1.2 obj_delta.c,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/python/python/nondist/sandbox/datetime
In directory sc8-pr-cvs1:/tmp/cvs-serv9723
Modified Files:
datetime.c
Log Message:
Reindent with tabs. Tim will take it from here.
Index: datetime.c
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/datetime.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** datetime.c 20 Aug 2002 18:53:07 -0000 1.12
--- datetime.c 21 Nov 2002 17:59:28 -0000 1.13
***************
*** 16,24 ****
typedef struct
{
! PyObject_HEAD
! int hashcode;
! long int days;
! long int seconds;
! long int microseconds;
} PyDateTime_Delta;
--- 16,24 ----
typedef struct
{
! PyObject_HEAD
! int hashcode;
! long int days;
! long int seconds;
! long int microseconds;
} PyDateTime_Delta;
***************
*** 65,69 ****
is_leap(int year)
{
! return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) ? 1 : 0;
}
--- 65,69 ----
is_leap(int year)
{
! return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) ? 1 : 0;
}
***************
*** 71,84 ****
days_in_month(int year, int month)
{
! static int _days_in_month[] = {
! 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
! };
! assert(month >= 1);
! assert(month <= 12);
! if (month == 2 && is_leap(year))
! return 29;
! else
! return _days_in_month[month];
}
--- 71,84 ----
days_in_month(int year, int month)
{
! static int _days_in_month[] = {
! 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
! };
! assert(month >= 1);
! assert(month <= 12);
! if (month == 2 && is_leap(year))
! return 29;
! else
! return _days_in_month[month];
}
***************
*** 86,91 ****
days_before_year(int year)
{
! int y = year - 1;
! return y*365 + y/4 - y/100 + y/400;
}
--- 86,91 ----
days_before_year(int year)
{
! int y = year - 1;
! return y*365 + y/4 - y/100 + y/400;
}
***************
*** 94,98 ****
*/
static int _days_before_month[] = {
! 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334
};
--- 94,98 ----
*/
static int _days_before_month[] = {
! 0, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334
};
***************
*** 100,111 ****
days_before_month(int year, int month)
{
! int days;
! assert(month >= 1);
! assert(month <= 12);
! days = _days_before_month[month];
! if (month > 2 && is_leap(year))
! ++days;
! return days;
}
--- 100,111 ----
days_before_month(int year, int month)
{
! int days;
! assert(month >= 1);
! assert(month <= 12);
! days = _days_before_month[month];
! if (month > 2 && is_leap(year))
! ++days;
! return days;
}
***************
*** 114,160 ****
ord_to_ymd(long int ordinal, long int *year, long int *month, long int *day)
{
! int di400y = days_before_year(401);
! int di100y = days_before_year(101);
! int di4y = days_before_year(5);
! int n, n1, n4, n100, n400, leapyear, preceding;
! assert(ordinal >= 1);
! --ordinal;
! n400 = ordinal / di400y;
! n = ordinal % di400y;
! *year = n400 * 400 + 1;
! n100 = n / di100y;
! n = n % di100y;
! n4 = n / di4y;
! n = n % di4y;
! n1 = n / 365;
! n = n % 365;
! *year += n100 * 100 + n4 * 4 + n1;
! if (n1 == 4 || n100 == 4) {
! assert(n == 0);
! *year -= 1;
! *month = 12;
! *day = 31;
! return;
! }
! leapyear = (n1 == 3 && (n4 != 24 || n100 == 3)) ? 1 : 0;
! assert(leapyear == is_leap(*year));
! *month = (n + 50) >> 5;
! preceding = (_days_before_month[*month]
! + ((*month > 2 && leapyear) ? 1 : 0));
! if (preceding > n) {
! /* estimate is too large */
! *month -= 1;
! preceding -= days_in_month(*year, *month);
! }
! n -= preceding;
! assert(0 <= n);
! assert(n < days_in_month(*year, *month));
! *day = n + 1;
}
--- 114,160 ----
ord_to_ymd(long int ordinal, long int *year, long int *month, long int *day)
{
! int di400y = days_before_year(401);
! int di100y = days_before_year(101);
! int di4y = days_before_year(5);
! int n, n1, n4, n100, n400, leapyear, preceding;
! assert(ordinal >= 1);
! --ordinal;
! n400 = ordinal / di400y;
! n = ordinal % di400y;
! *year = n400 * 400 + 1;
! n100 = n / di100y;
! n = n % di100y;
! n4 = n / di4y;
! n = n % di4y;
! n1 = n / 365;
! n = n % 365;
! *year += n100 * 100 + n4 * 4 + n1;
! if (n1 == 4 || n100 == 4) {
! assert(n == 0);
! *year -= 1;
! *month = 12;
! *day = 31;
! return;
! }
! leapyear = (n1 == 3 && (n4 != 24 || n100 == 3)) ? 1 : 0;
! assert(leapyear == is_leap(*year));
! *month = (n + 50) >> 5;
! preceding = (_days_before_month[*month]
! + ((*month > 2 && leapyear) ? 1 : 0));
! if (preceding > n) {
! /* estimate is too large */
! *month -= 1;
! preceding -= days_in_month(*year, *month);
! }
! n -= preceding;
! assert(0 <= n);
! assert(n < days_in_month(*year, *month));
! *day = n + 1;
}
***************
*** 163,167 ****
ymd_to_ord(int year, int month, int day)
{
! return days_before_year(year) + days_before_month(year, month) + day;
}
--- 163,167 ----
ymd_to_ord(int year, int month, int day)
{
! return days_before_year(year) + days_before_month(year, month) + day;
}
***************
*** 169,173 ****
weekday(int year, int month, int day)
{
! return (ymd_to_ord(year, month, day) + 6) % 7;
}
--- 169,173 ----
weekday(int year, int month, int day)
{
! return (ymd_to_ord(year, month, day) + 6) % 7;
}
***************
*** 175,187 ****
iso_week1_monday(int year)
{
! int first_day = ymd_to_ord(year, 1, 1);
! int first_weekday = (first_day + 6) % 7;
! int week1_monday = first_day - first_weekday;
#define THURSDAY 3
! if (first_weekday > THURSDAY)
! week1_monday += 7;
#undef THURSDAY
! return week1_monday;
}
--- 175,187 ----
iso_week1_monday(int year)
{
! int first_day = ymd_to_ord(year, 1, 1);
! int first_weekday = (first_day + 6) % 7;
! int week1_monday = first_day - first_weekday;
#define THURSDAY 3
! if (first_weekday > THURSDAY)
! week1_monday += 7;
#undef THURSDAY
! return week1_monday;
}
***************
*** 190,209 ****
int hours, int minutes, int seconds)
{
! static char *DayNames[] = {
! "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"
! };
! static char *MonthNames[] = {
! "Jan", "Feb", "Mar", "Apr", "May", "Jun",
! "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
! };
! char buffer[128];
! int wday = weekday(GET_YEAR(date), GET_MONTH(date), GET_DAY(date));
! PyOS_snprintf(buffer, sizeof(buffer), "%s %s %2d %02d:%02d:%02d %04d",
! DayNames[wday], MonthNames[GET_MONTH(date) - 1],
! GET_DAY(date), hours, minutes, seconds,
! GET_YEAR(date));
! return PyString_FromString(buffer);
}
--- 190,209 ----
int hours, int minutes, int seconds)
{
! static char *DayNames[] = {
! "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"
! };
! static char *MonthNames[] = {
! "Jan", "Feb", "Mar", "Apr", "May", "Jun",
! "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
! };
! char buffer[128];
! int wday = weekday(GET_YEAR(date), GET_MONTH(date), GET_DAY(date));
! PyOS_snprintf(buffer, sizeof(buffer), "%s %s %2d %02d:%02d:%02d %04d",
! DayNames[wday], MonthNames[GET_MONTH(date) - 1],
! GET_DAY(date), hours, minutes, seconds,
! GET_YEAR(date));
! return PyString_FromString(buffer);
}
***************
*** 211,219 ****
isoformat_date(PyDateTime_Date *dt, char buffer[], int bufflen)
{
! int x;
! x = PyOS_snprintf(buffer, bufflen,
! "%04d-%02d-%02d",
! GET_YEAR(dt), GET_MONTH(dt), GET_DAY(dt));
! return buffer + x;
}
--- 211,219 ----
isoformat_date(PyDateTime_Date *dt, char buffer[], int bufflen)
{
! int x;
! x = PyOS_snprintf(buffer, bufflen,
! "%04d-%02d-%02d",
! GET_YEAR(dt), GET_MONTH(dt), GET_DAY(dt));
! return buffer + x;
}
***************
*** 221,228 ****
isoformat_time(PyDateTime_DateTime *dt, char buffer[], int bufflen)
{
! PyOS_snprintf(buffer, bufflen,
! "%02d:%02d:%02d.%06d",
! GET_HOUR(dt), GET_MINUTE(dt), GET_SECOND(dt),
! GET_MICROSECOND(dt));
}
--- 221,228 ----
isoformat_time(PyDateTime_DateTime *dt, char buffer[], int bufflen)
{
! PyOS_snprintf(buffer, bufflen,
! "%02d:%02d:%02d.%06d",
! GET_HOUR(dt), GET_MINUTE(dt), GET_SECOND(dt),
! GET_MICROSECOND(dt));
}
***************
*** 232,245 ****
new_date(int year, int month, int day)
{
! PyDateTime_Date *self;
! self = PyObject_New(PyDateTime_Date, &PyDateTime_DateType);
! if (self != NULL) {
! self->hashcode = -1;
! SET_YEAR(self, year);
! SET_MONTH(self, month);
! SET_DAY(self, day);
! }
! return (PyObject *) self;
}
--- 232,245 ----
new_date(int year, int month, int day)
{
! PyDateTime_Date *self;
! self = PyObject_New(PyDateTime_Date, &PyDateTime_DateType);
! if (self != NULL) {
! self->hashcode = -1;
! SET_YEAR(self, year);
! SET_MONTH(self, month);
! SET_DAY(self, day);
! }
! return (PyObject *) self;
}
***************
*** 249,266 ****
int second, int usecond)
{
! PyDateTime_DateTime *self;
! self = PyObject_New(PyDateTime_DateTime, &PyDateTime_DateTimeType);
! if (self != NULL) {
! self->hashcode = -1;
! SET_YEAR(self, year);
! SET_MONTH(self, month);
! SET_DAY(self, day);
! SET_HOUR(self, hour);
! SET_MINUTE(self, minute);
! SET_SECOND(self, second);
! SET_MICROSECOND(self, usecond);
! }
! return (PyObject *) self;
}
--- 249,266 ----
int second, int usecond)
{
! PyDateTime_DateTime *self;
! self = PyObject_New(PyDateTime_DateTime, &PyDateTime_DateTimeType);
! if (self != NULL) {
! self->hashcode = -1;
! SET_YEAR(self, year);
! SET_MONTH(self, month);
! SET_DAY(self, day);
! SET_HOUR(self, hour);
! SET_MINUTE(self, minute);
! SET_SECOND(self, second);
! SET_MICROSECOND(self, usecond);
! }
! return (PyObject *) self;
}
***************
*** 268,289 ****
new_delta(long int days, long int seconds, long int microseconds)
{
! PyDateTime_Delta *self;
! if (microseconds >= 1000000 || microseconds <= -1000000) {
! seconds += microseconds / 1000000;
! microseconds %= 1000000;
! }
! if (seconds >= 24*3600 || seconds <= 24*3600) {
! days += seconds / (24*3600);
! seconds %= (24*3600);
! }
! self = PyObject_New(PyDateTime_Delta, &PyDateTime_DeltaType);
! if (self != NULL) {
! self->hashcode = -1;
! SET_TD_DAYS(self, days);
! SET_TD_SECONDS(self, seconds);
! SET_TD_MICROSECONDS(self, microseconds);
! }
! return (PyObject *) self;
}
--- 268,289 ----
new_delta(long int days, long int seconds, long int microseconds)
{
! PyDateTime_Delta *self;
! if (microseconds >= 1000000 || microseconds <= -1000000) {
! seconds += microseconds / 1000000;
! microseconds %= 1000000;
! }
! if (seconds >= 24*3600 || seconds <= 24*3600) {
! days += seconds / (24*3600);
! seconds %= (24*3600);
! }
! self = PyObject_New(PyDateTime_Delta, &PyDateTime_DeltaType);
! if (self != NULL) {
! self->hashcode = -1;
! SET_TD_DAYS(self, days);
! SET_TD_SECONDS(self, seconds);
! SET_TD_MICROSECONDS(self, microseconds);
! }
! return (PyObject *) self;
}
***************
*** 295,348 ****
init_datetime(void)
{
! PyObject *m;
! PyObject *d, *dt;
! if (PyType_Ready(&PyDateTime_DateType) < 0)
! return;
! if (PyType_Ready(&PyDateTime_DateTimeType) < 0)
! return;
! if (PyType_Ready(&PyDateTime_DeltaType) < 0)
! return;
! /* date values */
! d = PyDateTime_DateType.tp_dict;
! dt = new_date(1, 1, 1);
! if (dt == NULL || PyDict_SetItemString(d, "min", dt) < 0)
! return;
! Py_DECREF(dt);
! dt = new_date(MAXYEAR, 12, 31);
! if (dt == NULL || PyDict_SetItemString(d, "max", dt) < 0)
! return;
! Py_DECREF(dt);
! dt = new_delta(1, 0, 0);
! if (dt == NULL || PyDict_SetItemString(d, "resolution", dt) < 0)
! return;
! Py_DECREF(dt);
! /* date/time values */
! d = PyDateTime_DateTimeType.tp_dict;
! dt = new_datetime(1, 1, 1, 0, 0, 0, 0);
! if (dt == NULL || PyDict_SetItemString(d, "min", dt) < 0)
! return;
! Py_DECREF(dt);
! dt = new_datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999);
! if (dt == NULL || PyDict_SetItemString(d, "max", dt) < 0)
! return;
! Py_DECREF(dt);
! dt = new_delta(0, 0, 1);
! if (dt == NULL || PyDict_SetItemString(d, "resolution", dt) < 0)
! return;
! Py_DECREF(dt);
! /* module initialization */
! m = Py_InitModule3("_datetime", NULL,
! "Fast implementation of the datetime type.");
! PyModule_AddIntConstant(m, "MINYEAR", 1);
! PyModule_AddIntConstant(m, "MAXYEAR", MAXYEAR);
! Py_INCREF(&PyDateTime_DateType);
! PyModule_AddObject(m, "date", (PyObject *) &PyDateTime_DateType);
! Py_INCREF(&PyDateTime_DateTimeType);
! PyModule_AddObject(m, "datetime", (PyObject *) &PyDateTime_DateTimeType);
! Py_INCREF(&PyDateTime_DeltaType);
! PyModule_AddObject(m, "timedelta", (PyObject *) &PyDateTime_DeltaType);
}
--- 295,348 ----
init_datetime(void)
{
! PyObject *m;
! PyObject *d, *dt;
! if (PyType_Ready(&PyDateTime_DateType) < 0)
! return;
! if (PyType_Ready(&PyDateTime_DateTimeType) < 0)
! return;
! if (PyType_Ready(&PyDateTime_DeltaType) < 0)
! return;
! /* date values */
! d = PyDateTime_DateType.tp_dict;
! dt = new_date(1, 1, 1);
! if (dt == NULL || PyDict_SetItemString(d, "min", dt) < 0)
! return;
! Py_DECREF(dt);
! dt = new_date(MAXYEAR, 12, 31);
! if (dt == NULL || PyDict_SetItemString(d, "max", dt) < 0)
! return;
! Py_DECREF(dt);
! dt = new_delta(1, 0, 0);
! if (dt == NULL || PyDict_SetItemString(d, "resolution", dt) < 0)
! return;
! Py_DECREF(dt);
! /* date/time values */
! d = PyDateTime_DateTimeType.tp_dict;
! dt = new_datetime(1, 1, 1, 0, 0, 0, 0);
! if (dt == NULL || PyDict_SetItemString(d, "min", dt) < 0)
! return;
! Py_DECREF(dt);
! dt = new_datetime(MAXYEAR, 12, 31, 23, 59, 59, 999999);
! if (dt == NULL || PyDict_SetItemString(d, "max", dt) < 0)
! return;
! Py_DECREF(dt);
! dt = new_delta(0, 0, 1);
! if (dt == NULL || PyDict_SetItemString(d, "resolution", dt) < 0)
! return;
! Py_DECREF(dt);
! /* module initialization */
! m = Py_InitModule3("_datetime", NULL,
! "Fast implementation of the datetime type.");
! PyModule_AddIntConstant(m, "MINYEAR", 1);
! PyModule_AddIntConstant(m, "MAXYEAR", MAXYEAR);
! Py_INCREF(&PyDateTime_DateType);
! PyModule_AddObject(m, "date", (PyObject *) &PyDateTime_DateType);
! Py_INCREF(&PyDateTime_DateTimeType);
! PyModule_AddObject(m, "datetime", (PyObject *) &PyDateTime_DateTimeType);
! Py_INCREF(&PyDateTime_DeltaType);
! PyModule_AddObject(m, "timedelta", (PyObject *) &PyDateTime_DeltaType);
}
- Previous message: [Python-checkins] python/dist/src/Doc/lib libtempfile.tex,1.19,1.20
- Next message: [Python-checkins] python/nondist/sandbox/datetime datetime.h,1.5,1.6 obj_date.c,1.1,1.2 obj_datetime.c,1.1,1.2 obj_delta.c,1.1,1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]