@date-vir/duration
Version:
Durations units an utils for date-vir.
33 lines (32 loc) • 1.26 kB
TypeScript
import { DurationUnitSelection, type DurationBySelection } from './duration-selection.js';
import { AnyDuration } from './duration.js';
import type { RoundOptions } from './round-options.js';
/**
* Convert a duration from any combination of units into the selected units.
*
* @category Duration
* @example
*
* ```ts
* import {convertDuration} from 'date-vir';
*
* convertDuration({seconds: 5, milliseconds: 5}, {minutes: true}); // `{minutes: 0.25}`
* convertDuration({seconds: 5_356_800}, {weeks: true, seconds: true}); // `{weeks: 8, seconds: 518_400}`
* ```
*/
export declare function convertDuration<const SelectedUnits extends Readonly<DurationUnitSelection>>(duration: Readonly<AnyDuration>,
/** Select which duration units to convert to. */
units: SelectedUnits, rawOptions?: RoundOptions): DurationBySelection<SelectedUnits>;
/**
* Round every unit in a given duration to the given number of decimal points.
*
* @category Duration
* @example
*
* ```ts
* import {roundDuration} from 'date-vir';
*
* roundDuration({days: 1.002, minutes: 0.125}, 2); // `{days: 1, minutes: 0.13}`
* ```
*/
export declare function roundDuration<InputDuration extends AnyDuration>(duration: Readonly<InputDuration>, options: RoundOptions): InputDuration;