[wellwell-devel] [wellwell] Fix infinite loop in [datetime] when subtracting business days.
Stefan Hornburg
wellwell-devel at rt.icdevgroup.org
Fri Sep 17 09:15:33 UTC 2010
commit 9db0db531580e14e02e5c6b578e9792ecf85759e
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date: Fri Sep 17 11:14:25 2010 +0200
Fix infinite loop in [datetime] when subtracting business days.
global/datetime.tag | 13 +++++++++++--
1 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/global/datetime.tag b/global/datetime.tag
index 02b0676..68641a1 100644
--- a/global/datetime.tag
+++ b/global/datetime.tag
@@ -166,10 +166,19 @@ sub {
if ($scope eq 'days') {
$from_dt->add(days => $amount);
} elsif ($scope eq 'business_days') {
+ my $incr;
+
+ if ($function eq 'sub') {
+ $incr = -1;
+ }
+ else {
+ $incr = 1;
+ }
+
while($amount){
- $from_dt->add(days => 1);
+ $from_dt->add(days => $incr);
if($from_dt->day_of_week() < 6){
- $amount--;
+ $amount -= $incr;
}
}
} elsif ($scope eq 'weeks') {
More information about the wellwell-devel
mailing list