summaryrefslogtreecommitdiffstats
path: root/vendor/simshaun/recurr/src/Recurr/Transformer/Constraint/BetweenConstraint.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/simshaun/recurr/src/Recurr/Transformer/Constraint/BetweenConstraint.php')
-rw-r--r--vendor/simshaun/recurr/src/Recurr/Transformer/Constraint/BetweenConstraint.php81
1 files changed, 81 insertions, 0 deletions
diff --git a/vendor/simshaun/recurr/src/Recurr/Transformer/Constraint/BetweenConstraint.php b/vendor/simshaun/recurr/src/Recurr/Transformer/Constraint/BetweenConstraint.php
new file mode 100644
index 0000000..f16d491
--- /dev/null
+++ b/vendor/simshaun/recurr/src/Recurr/Transformer/Constraint/BetweenConstraint.php
@@ -0,0 +1,81 @@
+<?php
+
+/*
+ * Copyright 2014 Shaun Simmons
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Recurr\Transformer\Constraint;
+
+use Recurr\Transformer\Constraint;
+
+class BetweenConstraint extends Constraint
+{
+
+ protected $stopsTransformer = false;
+
+ /** @var \DateTimeInterface */
+ protected $before;
+
+ /** @var \DateTimeInterface */
+ protected $after;
+
+ /** @var bool */
+ protected $inc;
+
+ /**
+ * @param \DateTimeInterface $after
+ * @param \DateTimeInterface $before
+ * @param bool $inc Include date if it equals $after or $before.
+ */
+ public function __construct(\DateTimeInterface $after, \DateTimeInterface $before, $inc = false)
+ {
+ $this->after = $after;
+ $this->before = $before;
+ $this->inc = $inc;
+ }
+
+ /**
+ * Passes if $date is between $after and $before
+ *
+ * {@inheritdoc}
+ */
+ public function test(\DateTimeInterface $date)
+ {
+ if ($date > $this->before) {
+ $this->stopsTransformer = true;
+ }
+
+ if ($this->inc) {
+ return $date >= $this->after && $date <= $this->before;
+ }
+
+ return $date > $this->after && $date < $this->before;
+ }
+
+ /**
+ * @return \DateTimeInterface
+ */
+ public function getBefore()
+ {
+ return $this->before;
+ }
+
+ /**
+ * @return \DateTimeInterface
+ */
+ public function getAfter()
+ {
+ return $this->after;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isInc()
+ {
+ return $this->inc;
+ }
+}