The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use DateTime::Calendar::FrenchRevolutionary;

my $n = 1;
my @tests = ( [ "0:41:66", "0:41:67",  1,  0,  0],
              [ "0:72:91", "0:72:92",  1, 45,  0],
              [ "0:85:46", "0:85:47",  2,  3,  4],
              [ "7:99:99", "8:00:00", 19, 12,  0],
              [ "8:99:99", "9:00:00", 21, 36,  0],
            );

sub check_time {
  my ($n, $ch1, $ch2, $h, $m, $s) = @_;
  my $dt = DateTime::Calendar::FrenchRevolutionary->new(
            year => 1, month => 2, day => 3, abt_hour => $h, abt_minute => $m, abt_second => $s);
  my $resul    = $dt->iso8601;
  my $expected1 = "0001-02-03T" . $ch1;
  my $expected2 = "0001-02-03T" . $ch2;
  if ($resul eq $expected1 or $resul eq $expected2) {
    print "ok $n\n";
  }
  else {
    print "not ok $n : expected $expected1 or $expected2, got $resul\n";
  }
}


printf "1..%d\n", scalar @tests;

for (@tests) {
  check_time $n++, @$_;
}