Skip to content

Commit 0e66bcb

Browse files
aleksey-kutepovsdispater
authored andcommitted
Incorrect age calculation for future dates (#291)
1 parent 3fca216 commit 0e66bcb

File tree

4 files changed

+6
-4
lines changed

4 files changed

+6
-4
lines changed

pendulum/date.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def week_of_month(self):
8080

8181
@property
8282
def age(self):
83-
return self.diff().in_years()
83+
return self.diff(abs=False).in_years()
8484

8585
@property
8686
def quarter(self):

pendulum/datetime.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ def timezone_name(self): # type: () -> Union[str, None]
230230

231231
@property
232232
def age(self):
233-
return self.date().diff(self.now(self.tz).date()).in_years()
233+
return self.date().diff(self.now(self.tz).date(), abs=False).in_years()
234234

235235
def is_local(self):
236236
return self.offset == self.in_timezone(pendulum.local_timezone()).offset

tests/date/test_getters.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ def test_days_in_month():
3636
def test_age():
3737
d = pendulum.Date.today()
3838
assert d.age == 0
39-
assert d.add(years=1).age == 1
39+
assert d.add(years=1).age == -1
40+
assert d.subtract(years=1).age == 1
4041

4142

4243
def test_is_leap_year():

tests/datetime/test_getters.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ def test_int_timestamp_accuracy():
9595
def test_age():
9696
d = pendulum.now()
9797
assert d.age == 0
98-
assert d.add(years=1).age == 1
98+
assert d.add(years=1).age == -1
99+
assert d.subtract(years=1).age == 1
99100

100101

101102
def test_local():

0 commit comments

Comments
 (0)