UNPKG

js-essential-kit

Version:

This library provides a comprehensive set of utility functions for various common tasks, including date calculations, formatting, masking, normalizing data, and validation

58 lines (57 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.calculateAge = calculateAge; exports.convertDateFormat = convertDateFormat; /** * Calculates the age of a person based on a given birth date. * * This function accepts a birth date in the form of a Date object or a string, * converts it to a Date object if necessary, and calculates the age in years. * * @param {Date | string} birthDate - The birth date of the person. * @returns {number} - The age of the person in years. * * @example * // Calculate age from Date object * console.log(calculateAge(new Date(1990, 0, 1))); // e.g., 34 * * // Calculate age from string * console.log(calculateAge('1990-01-01')); // e.g., 34 */ function calculateAge(birthDate) { const dateOfBirth = typeof birthDate === 'string' ? new Date(birthDate) : birthDate; const today = new Date(); let age = today.getFullYear() - dateOfBirth.getFullYear(); const monthDifference = today.getMonth() - dateOfBirth.getMonth(); if (monthDifference < 0 || (monthDifference === 0 && today.getDate() < dateOfBirth.getDate())) { age--; } return age; } /** * Converts a date from 'yyyy-mm-dd' format to 'dd/mm/yyyy' format and vice versa. * * @param {string} date - The date string to be converted. * @returns {string} - The converted date string. * * @example * // Convert from 'yyyy-mm-dd' to 'dd/mm/yyyy' * console.log(convertDateFormat('2023-06-27')); // "27/06/2023" * * // Convert from 'dd/mm/yyyy' to 'yyyy-mm-dd' * console.log(convertDateFormat('27/06/2023')); // "2023-06-27" */ function convertDateFormat(date) { // Check if the input is in 'yyyy-mm-dd' format if (/^\d{4}-\d{2}-\d{2}$/.test(date)) { const [year, month, day] = date.split('-'); return `${day}/${month}/${year}`; } // Check if the input is in 'dd/mm/yyyy' format if (/^\d{2}\/\d{2}\/\d{4}$/.test(date)) { const [day, month, year] = date.split('/'); return `${year}-${month}-${day}`; } throw new Error('Invalid date format. Expected formats are yyyy-mm-dd or dd/mm/yyyy.'); }