Skip to content

Commit 8e582cc

Browse files
authored
Merge pull request #25 from assoconnect/between
Between
2 parents b0e55cd + 65efe42 commit 8e582cc

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/AbsoluteDate.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,16 @@ public function isAfterOrEqualTo(self $other): bool
153153
return $this->__toString() >= $other->__toString();
154154
}
155155

156+
public function isBetween(self $other1, self $other2): bool
157+
{
158+
return $other1->__toString() < $this->__toString() && $this->__toString() < $other2->__toString();
159+
}
160+
161+
public function isBetweenOrEqualTo(self $other1, self $other2): bool
162+
{
163+
return $other1->__toString() <= $this->__toString() && $this->__toString() <= $other2->__toString();
164+
}
165+
156166
/**
157167
* Returns date formatted according to the default date format (Y-m-d)
158168
*/

tests/AbsoluteDateTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,5 +201,17 @@ public function testComparison(): void
201201
self::assertTrue($dateAfter->isAfterOrEqualTo($dateBefore));
202202
self::assertTrue($dateAfter->isAfterOrEqualTo($dateAfter));
203203
self::assertFalse($dateBefore->isAfterOrEqualTo($dateAfter));
204+
205+
self::assertTrue((new AbsoluteDate('2023-06-01'))->isBetween($dateBefore, $dateAfter));
206+
self::assertFalse((new AbsoluteDate('2020-01-01'))->isBetween($dateBefore, $dateAfter));
207+
self::assertFalse((new AbsoluteDate('2025-01-01'))->isBetween($dateBefore, $dateAfter));
208+
self::assertFalse($dateBefore->isBetween($dateBefore, $dateAfter));
209+
self::assertFalse($dateAfter->isBetween($dateBefore, $dateAfter));
210+
211+
self::assertTrue((new AbsoluteDate('2023-06-01'))->isBetweenOrEqualTo($dateBefore, $dateAfter));
212+
self::assertFalse((new AbsoluteDate('2020-01-01'))->isBetweenOrEqualTo($dateBefore, $dateAfter));
213+
self::assertFalse((new AbsoluteDate('2025-01-01'))->isBetweenOrEqualTo($dateBefore, $dateAfter));
214+
self::assertTrue($dateBefore->isBetweenOrEqualTo($dateBefore, $dateAfter));
215+
self::assertTrue($dateAfter->isBetweenOrEqualTo($dateBefore, $dateAfter));
204216
}
205217
}

0 commit comments

Comments
 (0)