[Scipy-svn] r2427 - trunk/Lib/sandbox/timeseries
scipy-svn at scipy.org
scipy-svn at scipy.org
Fri Dec 15 16:29:40 EST 2006
Author: mattknox_ca
Date: 2006-12-15 15:29:36 -0600 (Fri, 15 Dec 2006)
New Revision: 2427
Modified:
trunk/Lib/sandbox/timeseries/tsdate.py
Log:
Modified: trunk/Lib/sandbox/timeseries/tsdate.py
===================================================================
--- trunk/Lib/sandbox/timeseries/tsdate.py 2006-12-15 21:29:26 UTC (rev 2426)
+++ trunk/Lib/sandbox/timeseries/tsdate.py 2006-12-15 21:29:36 UTC (rev 2427)
@@ -2,7 +2,7 @@
import mx.DateTime
class Date:
- def __init__(self, freq, year=None, month=None, day=None, seconds=None,quarter=None, mxDate=None, value=None):
+ def __init__(self, freq, year=None, month=None, day=None, seconds=None, quarter=None, mxDate=None, value=None):
if hasattr(freq, 'freq'):
self.freq = corelib.fmtFreq(freq.freq)
@@ -12,17 +12,19 @@
if value is not None:
if self.freq == 'D':
- self.mxDate = value+originDate
+ self.mxDate = mx.DateTime.DateTimeFromAbsDays(value-1)
elif self.freq == 'B':
- self.mxDate = originDate + value + (value//5)*7 - (value//5)*5
+ #originDate + val + (val//5)*7 - (val//5)*5
+ value -= 1
+ self.mxDate = mx.DateTime.DateTimeFromAbsDays(value + (value//5)*7 - (value//5)*5)
elif self.freq == 'S':
self.mxDate = secondlyOriginDate + mx.DateTime.DateTimeDeltaFromSeconds(value)
elif self.freq == 'M':
- self.mxDate = originDate + mx.DateTime.RelativeDateTime(months=value, day=-1)
+ self.mxDate = (mx.DateTime.Date(0)) + mx.DateTime.RelativeDateTime(months=value-1, day=-1)
elif self.freq == 'A':
- self.mxDate = originDate + mx.DateTime.RelativeDateTime(years=value, month=-1, day=-1)
+ self.mxDate = mx.DateTime.Date(value, -1, -1)
elif self.freq == 'Q':
- self.mxDate = originDate + 1 + mx.DateTime.RelativeDateTime(years=int(value/4), month=int(12 * (float(value)/4 - value/4)), day=-1)
+ self.mxDate = (mx.DateTime.Date(0)) + mx.DateTime.RelativeDateTime(years=(value // 4), month=((value * 3) % 12), day=-1)
elif mxDate is not None:
self.mxDate = mxDate
else:
@@ -125,23 +127,23 @@
return self.value
def __value(self):
+
if self.freq == 'D':
- return int((self.mxDate-originDate).days)
+ return self.mxDate.absdate
elif self.freq == 'B':
- days = (self.mxDate-originDate).days
+ days = self.mxDate.absdate
weeks = days // 7
return int((weeks*5) + (days - weeks*7))
elif self.freq == 'M':
- return (self.mxDate.year - originDate.year)*12 + (self.mxDate.month - originDate.month)
+ return self.mxDate.year*12 + self.mxDate.month
elif self.freq == 'S':
return int((self.mxDate - secondlyOriginDate).seconds)
elif self.freq == 'A':
- return int(self.mxDate.year - originDate.year + 1)
+ return int(self.mxDate.year)
elif self.freq == 'Q':
- return int ((self.mxDate.year - originDate.year)*4 + (self.mxDate.month - originDate.month)/3)
-
+ return int(self.mxDate.year*4 + self.mxDate.month/3)
+
-originDate = mx.DateTime.Date(1850)-1
secondlyOriginDate = mx.DateTime.Date(1980) - mx.DateTime.DateTimeDeltaFromSeconds(1)
More information about the Scipy-svn
mailing list