pbot/PBot/Utils/ParseDate.pm

39 lines
719 B
Perl

#!/usr/bin/env perl
use warnings;
use strict;
package PBot::Utils::ParseDate;
require Exporter;
our @ISA = qw/Exporter/;
our @EXPORT = qw/parsedate/;
use Time::HiRes qw/gettimeofday/;
require Time::ParseDate;
sub parsedate {
my $input = shift @_;
my $now = gettimeofday;
my @inputs = split /(?:,?\s+and\s+|\s*,\s*)/, $input;
my $seconds = 0;
foreach my $input (@inputs) {
return -1 if $input =~ m/forever/i;
$input .= ' seconds' if $input =~ m/^\s*\d+\s*$/;
my $parse = Time::ParseDate::parsedate($input, NOW => $now);
if (not defined $parse) {
return (0, "I don't know what '$input' means.\n");
} else {
$seconds += $parse - $now;
}
}
return $seconds;
}
1;