diff options
Diffstat (limited to 'libical/src/Net-ICal-Libical/lib/Net/ICal/Libical/Duration.pm')
-rw-r--r-- | libical/src/Net-ICal-Libical/lib/Net/ICal/Libical/Duration.pm | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/libical/src/Net-ICal-Libical/lib/Net/ICal/Libical/Duration.pm b/libical/src/Net-ICal-Libical/lib/Net/ICal/Libical/Duration.pm deleted file mode 100644 index 13ec9c437e..0000000000 --- a/libical/src/Net-ICal-Libical/lib/Net/ICal/Libical/Duration.pm +++ /dev/null @@ -1,160 +0,0 @@ -#============================================================================= -# -# This package is free software and is provided "as is" without express -# or implied warranty. It may be used, redistributed and/or modified -# under the same terms as perl itself. (Either the Artistic License or -# the GPL.) -# -#============================================================================= - -=head1 NAME - -Net::ICal::Duration -- represent a length of time - -=head1 SYNOPSIS - - use Net::ICal; - $d = Net::ICal::Duration->new("P3DT6H15M10S"); - $d = Net::ICal::Duration->new(3600); # 1 hour in seconds - -=head1 DESCRIPTION - -I<Duration> Represents a length of time, such a 3 days, 30 seconds or -7 weeks. You would use this for representing an abstract block of -time; "I want to have a 1-hour meeting sometime." If you want a -calendar- and timezone-specific block of time, see Net::ICal::Period. - -=cut - -#============================================================================= - -package Net::ICal::Libical::Duration; -use Net::ICal::Libical::Property; -use strict; -use Carp; -@Net::ICal::Libical::Duration::ISA = qw ( Net::ICal::Libical::Property ); - -=head1 METHODS - -=head2 new - -Create a new I<Duration> from: - -=over 4 - -=item * A string in RFC2445 duration format - -=item * An integer representing a number of seconds - -=cut - -sub new { - my $package = shift; - my $arg = shift; - my $self; - - if (ref($arg) == 'HASH'){ - # Construct from dictionary - $self = Net::ICal::Libical::Property::new($package,$arg); - my $val=Net::ICal::Libical::icalproperty_get_value_as_string($self->{'ref'}); - $self->{'dur'} = Net::ICal::Libical::icaldurationtype_from_string($val); - - return $self; - - } elsif ($arg =~ /^[-+]?\d+$/){ - # Seconds - $self = Net::ICal::Libical::Property::new($package,'DURATION'); - $self->{'dur'} = Net::ICal::Libical::icaldurationtype_new_from_int($arg); - } elsif ($arg) { - # iCalendar string - $self = Net::ICal::Libical::Property::new($package,'DURATION'); - $self->{'dur'} = Net::ICal::Libical::icaldurationtype_new_from_string($arg); - } else { - die; - } - - $self->_update_value(); - return $self; - -} - -sub _update_value { - my $self = shift; - - die "Can't find internal icalduration reference" if !$self->{'dur'}; - - $self->value(Net::ICal::Libical::icaldurationtype_as_ical_string($self->{'dur'})); - -} -=head2 clone() - -Return a new copy of the duration. - -=cut - -sub clone { - die "Not Implemented"; - -} - - -=head2 is_valid() - -Determine if this is a valid duration (given criteria TBD). - -=cut - -sub is_valid { - - die "Not Implemented;" - -} - -=head2 seconds() - -Set or Get the length of the duration as seconds. - -=cut - -sub seconds { - my $self = shift; - my $seconds = shift; - - if($seconds){ - $self->{'dur'} = - Net::ICal::Libical::icaldurationtype_from_int($seconds); - $self->_update_value(); - } - - return Net::ICal::Libical::icaldurationtype_as_int($self->{'dur'}); - -} - -=head2 add($duration) - -Return a new duration that is the sum of this and $duration. Does not -modify this object. - -=cut - -sub add { - my ($self, $duration) = @_; - - return new Duration($self->seconds() + $duration->seconds()); -} - - -=head2 subtract($duration) - -Return a new duration that is the difference between this and -$duration. Does not modify this object. - -=cut - -sub subtract { - my ($self, $duration) = @_; - - return new Duration($self->seconds() - $duration->seconds()); -} - -1; |