| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | package App::Jiffy::Util::Duration; | 
| 2 |  |  |  |  |  |  |  | 
| 3 | 1 |  |  | 1 |  | 7 | use strict; | 
|  | 1 |  |  |  |  | 55 |  | 
|  | 1 |  |  |  |  | 36 |  | 
| 4 | 1 |  |  | 1 |  | 6 | use warnings; | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 29 |  | 
| 5 |  |  |  |  |  |  |  | 
| 6 | 1 |  |  | 1 |  | 5 | use Exporter 'import'; | 
|  | 1 |  |  |  |  | 2 |  | 
|  | 1 |  |  |  |  | 187 |  | 
| 7 |  |  |  |  |  |  |  | 
| 8 |  |  |  |  |  |  | our @EXPORT_OK = qw/round/; | 
| 9 |  |  |  |  |  |  |  | 
| 10 |  |  |  |  |  |  | sub round { | 
| 11 | 0 |  |  | 0 | 0 |  | my $duration = shift; | 
| 12 | 0 |  | 0 |  |  |  | my $minute_period = shift // 15; | 
| 13 |  |  |  |  |  |  |  | 
| 14 |  |  |  |  |  |  | # Round seconds | 
| 15 | 0 |  |  |  |  |  | my $seconds = $duration->seconds; | 
| 16 | 0 | 0 |  |  |  |  | if ( $seconds >= 30 ) { | 
| 17 | 0 |  |  |  |  |  | $duration->add( minutes => 1 ); | 
| 18 |  |  |  |  |  |  | } | 
| 19 | 0 |  |  |  |  |  | $duration->subtract( seconds => $seconds ); | 
| 20 |  |  |  |  |  |  |  | 
| 21 |  |  |  |  |  |  | # Round minutes | 
| 22 | 0 |  |  |  |  |  | my $minutes = $duration->minutes; | 
| 23 | 0 | 0 |  |  |  |  | if ( $minutes % $minute_period >= $minute_period / 2 ) { | 
| 24 | 0 |  |  |  |  |  | $duration->add( minutes => $minute_period - ( $minutes % $minute_period ) ); | 
| 25 |  |  |  |  |  |  | } else { | 
| 26 | 0 |  |  |  |  |  | $duration->subtract( minutes => $minutes % $minute_period ); | 
| 27 |  |  |  |  |  |  | } | 
| 28 |  |  |  |  |  |  | } | 
| 29 |  |  |  |  |  |  |  | 
| 30 |  |  |  |  |  |  | 1; |