Fix many issues in calculation and improve output formatting

This commit is contained in:
Marko Korhonen 2023-11-14 17:03:18 +02:00
parent 50144cfc99
commit 6572f95389
Signed by: FunctionalHacker
GPG key ID: A7F78BCB859CD890
3 changed files with 86 additions and 30 deletions

View file

@ -3,7 +3,23 @@ import { Duration } from 'dayjs/plugin/duration.js';
export const formatTimestamp = (timestamp: Dayjs): string => timestamp.format('YYYY-MM-DD HH:mm');
export const formatDuration = (unLogged: Duration): string => unLogged.format('HH[ hours and ]mm [minutes]');
export const formatTime = (time: Dayjs): string => time.format('HH:mm');
export const formatDuration = (duration: Duration, short?: boolean): string => {
if (duration.hours() === 0 && duration.minutes() === 0) {
return 'none';
}
const formatString = short
? 'HH:mm'
: duration.hours() > 0 && duration.minutes() > 0
? `H [hour${duration.hours() > 1 ? 's' : ''} and] m [minute${duration.minutes() > 1 ? 's' : ''}]`
: duration.hours() > 0
? `H [hour${duration.hours() > 1 ? 's' : ''}]`
: `m [minute${duration.minutes() > 1 ? 's' : ''}]`;
return duration.format(formatString);
};
export const getHoursRoundedStr = (duration: Duration) =>
`(${getHoursRounded(duration)} as hours rounded to next even 15 minutes)`;