DateTime-TimeZone-ICal

 view release on metacpan or  search on metacpan

lib/DateTime/TimeZone/ICal/Parsing.pm  view on Meta::CPAN

# these are different from above
my %TYPES = (
    DATE         => sub { DateTime::Format::ICal->parse_datetime($_[1]) },
    'DATE-TIME'  => sub { DateTime::Format::ICal->parse_datetime($_[1]) },
    DURATION     => sub { DateTime::Format::ICal->parse_duration($_[1]) },
    FLOAT        => sub {
        my ($x) = ($_[1] =~ /^\s*([+-]?\d+(?:\.\d+))\s*$/); $x },
    INTEGER      => sub {
        my ($x) = ($_[1] =~ /^\s*([+-]?\d+)\s*$/); $x },
    PERIOD       => sub {
        my ($start, $end) = split m!\s*/+\s*!, $_[1];
        $start = DateTime::Format::ICal->parse_datetime($start);
        if ($end =~ /^[Pp]/) {
            $end = DateTime::Format::ICal->parse_duration($end);
            $end = $start + $end;
        }
        else {
            $end = DateTime::Format::ICal->parse_datetime($end);
        }

        DateTime::Span->from_datetimes(start => $start, end => $end);



( run in 1.425 second using v1.01-cache-2.11-cpan-71847e10f99 )