@@ -210,13 +210,15 @@ def _get_rc_timezone():
210
210
class _datetimey (datetime .datetime ):
211
211
212
212
def __new__ (cls , year , * args , ** kwargs ):
213
+ print ('New datetimey' )
213
214
if year < 1 or year > 9999 :
214
215
yearoffset = int (np .floor (year / 400 ) * 400 ) - 2000
215
216
year = year - yearoffset
216
217
else :
217
218
yearoffset = 0
218
219
new = super ().__new__ (cls , year , * args , ** kwargs )
219
220
new ._yearoffset = yearoffset
221
+ print (new ._yearoffset )
220
222
return new
221
223
222
224
def strftime (self , fmt ):
@@ -240,8 +242,26 @@ def astimezone(self, tz=None):
240
242
print ('self' , self )
241
243
new = super (_datetimey , self ).astimezone (tz )
242
244
new = self ._datetime_to_datetimey (new , self ._yearoffset )
245
+ print ('yoff' , new ._yearoffset )
243
246
return new
244
247
248
+ def replace (self , * args , ** kwargs ):
249
+ year = kwargs .pop ('year' , None )
250
+ if year is not None :
251
+ if year < 1 or year > 9999 :
252
+ yearoffset = int (np .floor (year / 400 ) * 400 ) - 2000
253
+ year = year - yearoffset
254
+ else :
255
+ yearoffset = 0
256
+ kwargs ['year' ] = year
257
+ else :
258
+ yearoffset = self ._yearoffset
259
+ new = super ().replace (* args , ** kwargs )
260
+ return self ._datetime_to_datetimey (new , yearoffset )
261
+
262
+
263
+ def relativedelta (t1 , t2 ):
264
+
245
265
246
266
def _to_ordinalf (dt ):
247
267
"""
0 commit comments