#!/usr/bin/perl -w use strict; use Time::Local; my %mon = (Jan => 0, Feb => 1, Mar => 2, Apr => 3, May => 4, Jun => 5, Jul => 6, Aug => 7, Sep => 8, Oct => 9, Nov => 10, Dec => 11); sub parse_date { local $_ = shift; my ($mon, $day, $year, $hr, $min, $am_pm) = split /\W+/; $mon = $mon{$mon}; $year -= 1900; $hr += 12 if ($am_pm eq 'PM' and $hr != 12); timelocal(0, $min, $hr, $day, $mon, $year); } while () { chomp; my ($start, $end) = split(/ & /); print parse_date($end) - parse_date ($start), "\n"; } __END__ Mar 19, 2001 01:23 PM & Mar 19, 2001 03:52 PM Mar 19, 2001 11:42 AM & Mar 19, 2001 12:21 PM Feb 29, 2001 11:23 PM & Mar 01, 2001 12:12 AM