%months = qw(January 01 February 02 March 03 April 04 May 05 June 06 July 07 August 08 September 09 October 10 November 11 December 12); # start if ($logfile[$i] =~ /\bJob started:/) { chomp ($tempstring = $logfile[$i]); #datetemp[0] --> Month $tempstring =~ s/Job started: //; #datetemp[1] --> Day $tempstring =~ s/\w*, //; #datetemp[2] --> Year $tempstring =~ s/,//; #datetemp[3] --> Hour (converted to 24) $tempstring =~ s/:/ /; #datetemp[4] --> Minute : Seconds $tempstring =~ s/at //; #datetemp[5] --> AM / PM @datetemp = split (/ /, $tempstring); $datetemp[0] = $months{$datetemp[0]}; if ($datetemp[5] eq "PM") { $datetemp[3] = $datetemp[3] + 12;} if ($datetemp[5] eq "AM") { if ($datetemp[3] eq 12) { $datetemp[3] = 0;}} $start = $datetemp[2] . "/" . $datetemp[0] . "/" . $datetemp[1] . " " . $datetemp[3] . ":" . $datetemp[4]; $stime = ($datetemp[3] * 60) + $datetemp[4] ; # <-- convert to minutes } # I could use: $stime = ($datetemp[3] * 360) + ($datetemp[4] * 60) # <-- convert to seconds # end if ($logfile[$i] =~ /\bJob ended:/) { chomp ($tempstring = $logfile[$i]); $tempstring =~ s/Job ended: //; $tempstring =~ s/\w*, //; $tempstring =~ s/,//; $tempstring =~ s/:/ /; $tempstring =~ s/at //; @datetemp = split (/ /, $tempstring); $datetemp[0] = $months{$datetemp[0]}; if ($datetemp[5] eq "PM") { $datetemp[3] = $datetemp[3] + 12;} if ($datetemp[5] eq "AM") { if ($datetemp[3] eq 12) { $datetemp[3] = 0;}} $end = $datetemp[2] . "/" . $datetemp[0] . "/" . $datetemp[1] . " " . $datetemp[3] . ":" . $datetemp[4]; $etime = ($datetemp[3] * 60) + $datetemp[4]; # <-- convert to minutes } # I could use: $stime = ($datetemp[3] * 360) + ($datetemp[4] * 60) # <-- convert to seconds # time of job in seconds $sectime = ($etime - $stime) * 60; # <-- convert to seconds # sectime = ($etime - $stime) #if already in seconds