DateTime Spanset Calculation

[email protected] ("David Gang")
Newsgroups perl.datetime
Message-ID <636DAB2D48A1DE44B99612148FBD80B20321DA83@il-ex01.Corp.Exlibrisgroup.com>
Hi All,
I wrote a script with two cases.
In the first case the set unites between the spans and in the second set
it does not unite.
Can you please explain me what is the difference and how in the first
case I can bring them to unite ?
(I am using version 0.25)

Best regards,
David

Here is the script
#####################################
use strict;
use warnings;
use DateTime::SpanSet;
my $a= DateTime->new(year=>1998);
my $b = DateTime->new(year=>2002);
my $c = DateTime->new(year=>2004);
my $d = DateTime->new(year=>2005);
my $e = DateTime->new(year=>1994);

my $span1 = DateTime::Span->from_datetimes( start => $a, before => $b );
my $span2 = DateTime::Span->from_datetimes( start => $c, before => $d );
my $span3 = DateTime::Span->from_datetimes( start => $e, before => $c );
my $set1 = DateTime::SpanSet->from_spans(spans=>[$span1,$span2]);
my $set2 = DateTime::SpanSet->from_spans(spans=>[$span3]);
my $set3 = $set1->union($set2);
my @list = $set3->as_list;
print "running union between [1998,2002),[2004,2005),[1994,2004) gives
the following result\n";
print $list[0]->start->ymd,"\t",$list[0]->end->ymd,"\n";
print $list[1]->start->ymd,"\t",$list[1]->end->ymd,"\n";
print "running union between [2002,2004),[2004,2005) gives the following
result\n";
my $span4 = DateTime::Span->from_datetimes( start => $b, before => $c );
my $set4 = DateTime::SpanSet->from_spans(spans=>[$span4]);
my $set5 = DateTime::SpanSet->from_spans(spans=>[$span2]);
my $set6 = $set4->union($set5);
my @list = $set6->as_list;
print $list[0]->start->ymd,"\t",$list[0]->end->ymd,"\n";


##################################
And here is the output 
running union between [1998,2002),[2004,2005),[1994,2004) gives the
following result
1994-01-01      2004-01-01
2004-01-01      2005-01-01
running union between [2002,2004),[2004,2005) gives the following result
2002-01-01      2005-01-01
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.