All files / src/app/pipes duration.pipe.ts

75.55% Statements 34/45
50% Branches 16/32
100% Functions 4/4
74.41% Lines 32/43

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90            152x     68x   68x 68x 68x 68x   68x             68x               68x 29x 29x         68x 3x 3x         68x 110x               110x     1x   1x 1x 1x 1x 1x   1x       1x       1x 1x     1x 1x     1x       1x 110x      
import { Pipe, PipeTransform } from '@angular/core';
 
@Pipe({
  name: 'duration',
  standalone: true
})
export class DurationPipe implements PipeTransform {
 
  transform(seconds: number): string {
    let duration = "";
 
    const days = Math.floor(seconds / (3600 * 24));
    const hours = Math.floor((seconds % (3600 * 24)) / 3600);
    const minutes = Math.floor((seconds % 3600) / 60);
    const remainingSeconds = Math.round(seconds % 60);
 
    Iif (days > 0){
      duration += `${days} day`;
      if (days > 1){
        duration += 's';
      }
    }
 
    Iif (hours > 0){
      duration += ` ${hours} hour`;
      if (hours > 1){
        duration += 's';
      }
 
    }
 
    if (minutes > 0){
      duration += ` ${minutes} minute`;
      Iif (minutes > 1){
        duration += 's';
      }
    }
 
    if (remainingSeconds > 0){
      duration += ` ${remainingSeconds} second`;
      Iif (remainingSeconds > 1){
        duration += 's';
      }
    }
 
    return duration;
  }
 
}
 
@Pipe({
  name: 'duration-short',
  standalone: true
})
export class ShortDurationPipe implements PipeTransform {
 
  transform(seconds: number): string {
    let duration = "";
 
    seconds = Math.round(seconds);
    const days = Math.floor(seconds / (3600 * 24));
    const hours = Math.floor((seconds % (3600 * 24)) / 3600);
    const minutes = Math.floor((seconds % 3600) / 60);
    const remainingSeconds = seconds % 60;
 
    Iif (days > 0){
      duration += `${days}d`;
    }
 
    Iif (hours > 0){
      duration += `${hours}hr`;
    }
 
    Eif (minutes > 0){
      duration += `${minutes}mn`;
    }
 
    Eif (remainingSeconds > 0){
      duration += `${remainingSeconds}s`;
    }
 
    Iif (duration === "" && remainingSeconds === 0) {
      duration += "<1s";
    }
 
    return duration;
  }
 
}