aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/date-fns/esm/differenceInYears/index.js
diff options
context:
space:
mode:
authorPinapelz <yukais@pinapelz.com>2025-06-28 17:26:46 -0700
committerPinapelz <yukais@pinapelz.com>2025-06-28 17:43:56 -0700
commite4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 (patch)
tree06284a538a6008eca75051399e47db4e5d50301c /node_modules/date-fns/esm/differenceInYears/index.js
initial commit: scaffolding
Diffstat (limited to 'node_modules/date-fns/esm/differenceInYears/index.js')
-rw-r--r--node_modules/date-fns/esm/differenceInYears/index.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/date-fns/esm/differenceInYears/index.js b/node_modules/date-fns/esm/differenceInYears/index.js
new file mode 100644
index 0000000..0b33b06
--- /dev/null
+++ b/node_modules/date-fns/esm/differenceInYears/index.js
@@ -0,0 +1,41 @@
+import toDate from "../toDate/index.js";
+import differenceInCalendarYears from "../differenceInCalendarYears/index.js";
+import compareAsc from "../compareAsc/index.js";
+import requiredArgs from "../_lib/requiredArgs/index.js";
+/**
+ * @name differenceInYears
+ * @category Year Helpers
+ * @summary Get the number of full years between the given dates.
+ *
+ * @description
+ * Get the number of full years between the given dates.
+ *
+ * @param {Date|Number} dateLeft - the later date
+ * @param {Date|Number} dateRight - the earlier date
+ * @returns {Number} the number of full years
+ * @throws {TypeError} 2 arguments required
+ *
+ * @example
+ * // How many full years are between 31 December 2013 and 11 February 2015?
+ * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))
+ * //=> 1
+ */
+export default function differenceInYears(dirtyDateLeft, dirtyDateRight) {
+ requiredArgs(2, arguments);
+ var dateLeft = toDate(dirtyDateLeft);
+ var dateRight = toDate(dirtyDateRight);
+ var sign = compareAsc(dateLeft, dateRight);
+ var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight));
+
+ // Set both dates to a valid leap year for accurate comparison when dealing
+ // with leap days
+ dateLeft.setFullYear(1584);
+ dateRight.setFullYear(1584);
+
+ // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full
+ // If so, result must be decreased by 1 in absolute value
+ var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;
+ var result = sign * (difference - Number(isLastYearNotFull));
+ // Prevent negative zero
+ return result === 0 ? 0 : result;
+} \ No newline at end of file
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage