55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
/**
|
|
* Time utility functions
|
|
*/
|
|
|
|
/**
|
|
* Round time down to nearest 15 minutes
|
|
* @param {Date} date - Date object
|
|
* @returns {Date} - Rounded date
|
|
*/
|
|
export function roundDownTo15Min(date) {
|
|
const minutes = date.getMinutes();
|
|
const roundedMinutes = Math.floor(minutes / 15) * 15;
|
|
date.setMinutes(roundedMinutes);
|
|
date.setSeconds(0);
|
|
date.setMilliseconds(0);
|
|
return date;
|
|
}
|
|
|
|
/**
|
|
* Round time up to nearest 15 minutes
|
|
* @param {Date} date - Date object
|
|
* @returns {Date} - Rounded date
|
|
*/
|
|
export function roundUpTo15Min(date) {
|
|
const minutes = date.getMinutes();
|
|
const roundedMinutes = Math.ceil(minutes / 15) * 15;
|
|
date.setMinutes(roundedMinutes);
|
|
date.setSeconds(0);
|
|
date.setMilliseconds(0);
|
|
return date;
|
|
}
|
|
|
|
/**
|
|
* Format time as HH:MM
|
|
* @param {Date} date - Date object
|
|
* @returns {string} - Time in HH:MM format
|
|
*/
|
|
export function formatTime(date) {
|
|
const hours = String(date.getHours()).padStart(2, '0');
|
|
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
return `${hours}:${minutes}`;
|
|
}
|
|
|
|
/**
|
|
* Format seconds to HH:MM:SS
|
|
* @param {number} seconds - Duration in seconds
|
|
* @returns {string} - Formatted duration
|
|
*/
|
|
export function formatDuration(seconds) {
|
|
const hrs = Math.floor(seconds / 3600);
|
|
const mins = Math.floor((seconds % 3600) / 60);
|
|
const secs = seconds % 60;
|
|
return `${String(hrs).padStart(2, '0')}:${String(mins).padStart(2, '0')}:${String(secs).padStart(2, '0')}`;
|
|
}
|