@modern-kit/utils
Version:
1 lines • 1.57 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../src/date/getAge/index.ts"],"sourcesContent":["import { parseDate } from '../parseDate';\n\n/**\n * @description 주어진 생년월일을 기준으로 현재 나이를 계산합니다.\n *\n * @param {string | number | Date} birthDate - 확인하고자 하는 생년월일\n * @returns {number} 현재 나이 (만 나이)\n *\n * @example\n * // 현재 날짜 2025년 01월 01일 기준\n * getAge(new Date('2006-01-01')); // 19\n *\n * @example\n * // 2025년 01월 01일 기준\n * getAge('2006-01-01'); // 19\n *\n */\nexport function getAge(birthDate: string | number | Date): number {\n const birthDateTime = parseDate(birthDate);\n const today = new Date();\n\n const age = today.getFullYear() - birthDateTime.getFullYear();\n const monthDiff = today.getMonth() - birthDateTime.getMonth();\n const dayDiff = today.getDate() - birthDateTime.getDate();\n\n // 만약, 생일이 지나지 않았다면 나이에서 1을 뺀다.\n if (monthDiff < 0 || (monthDiff === 0 && dayDiff < 0)) {\n return age - 1;\n }\n\n return age;\n}\n"],"names":[],"mappings":";;;AAiBO,SAAS,OAAO,SAAA,EAA2C;AAChE,EAAA,MAAM,aAAA,GAAgB,UAAU,SAAS,CAAA;AACzC,EAAA,MAAM,KAAA,uBAAY,IAAA,EAAK;AAEvB,EAAA,MAAM,GAAA,GAAM,KAAA,CAAM,WAAA,EAAY,GAAI,cAAc,WAAA,EAAY;AAC5D,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,QAAA,EAAS,GAAI,cAAc,QAAA,EAAS;AAC5D,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,EAAQ,GAAI,cAAc,OAAA,EAAQ;AAGxD,EAAA,IAAI,SAAA,GAAY,CAAA,IAAM,SAAA,KAAc,CAAA,IAAK,UAAU,CAAA,EAAI;AACrD,IAAA,OAAO,GAAA,GAAM,CAAA;AAAA,EACf;AAEA,EAAA,OAAO,GAAA;AACT;;;;"}