#!/usr/bin/perl use strict; use warnings; use Date::Manip; use Data::Dumper; use feature 'say'; my $dateStart = "Jan 29 2018 4:59pm"; my $dateEnd = "Jan 30 2018 08:01am"; my $business = DateCalc($dateStart, $dateEnd, "business"); my $businessTime = Delta_Format($business, 0, "Time in %hv hours, %mv minutes, %sv seconds"); say $businessTime; my $nonBusiness = DateCalc($dateStart, $dateEnd, "exact"); my $nonBusinessTime = Delta_Format($nonBusiness, 0, "Time in %hv hours, %mv minutes, %sv seconds"); say $nonBusinessTime; my @businessArray = split(/:/, $business); my @nonBusinessArray = split(/:/, $nonBusiness); my @totalArray; foreach my $i ( 0 .. $#businessArray ) { push @totalArray, $nonBusinessArray[$i] - $businessArray[$i]; } ### For Output Viewing Purposes ### my @dateFormat = ("years", "months", "weeks", "days", "hours", "minutes", "seconds"); my %totalHash; @totalHash{@dateFormat} = @totalArray; # print Dumper \%totalHash; my $deltaStr = join(':', @totalArray); my $str = Delta_Format($deltaStr,"Total %hv hours, %mv minutes, %sv seconds"); say $str; __END__ $ perl test.pl Time in 0 hours, 2 minutes, 0 seconds Time in 15 hours, 2 minutes, 0 seconds Total 15 hours, 0 minutes, 0 seconds #### exact : an exact, non-business calculation semi : a semi-exact, non-business calculation approx : an approximate, non-business calculation business : an exact, business calculation bsemi : a semi-exact, business calculation bapprox : an approximate, business calculation #### #!/usr/bin/perl use strict; use warnings; use Date::Manip; use feature 'say'; my $dateStart = "Jan 29 2018 4:59pm"; my $dateEnd = "Jan 30 2018 08:01am"; my $business = DateCalc($dateStart, $dateEnd, "business"); my $businessTime = Delta_Format($business, 0, "Time in %hv hours, %mv minutes, %sv seconds"); say $businessTime; __END__ $ perl test.pl Time in 0 hours, 2 minutes, 0 seconds