(ms: number)
| 690 | } |
| 691 | |
| 692 | function formatDuration(ms: number): string { |
| 693 | const seconds = Math.floor(ms / 1000) |
| 694 | const minutes = Math.floor(seconds / 60) |
| 695 | const hours = Math.floor(minutes / 60) |
| 696 | |
| 697 | if (hours > 0) { |
| 698 | const remainingMinutes = minutes % 60 |
| 699 | return `${hours}h ${remainingMinutes}m` |
| 700 | } |
| 701 | if (minutes > 0) { |
| 702 | return `${minutes}m` |
| 703 | } |
| 704 | return `${seconds}s` |
| 705 | } |
| 706 | |
| 707 | function formatHourRange(hour: number): string { |
| 708 | const start = hour.toString().padStart(2, "0") |