diff --git a/src/tools/days-calculator/days-calculator.service.test.ts b/src/tools/days-calculator/days-calculator.service.test.ts
index c2c2482e8..3c1e5d595 100644
--- a/src/tools/days-calculator/days-calculator.service.test.ts
+++ b/src/tools/days-calculator/days-calculator.service.test.ts
@@ -65,6 +65,17 @@ describe('days-calculator', () => {
type: 'public',
},
];
+ const totalDiff1 = {
+ totalDifference: {
+ days: 30.416666666666668,
+ hours: 730,
+ minutes: 43800,
+ months: 0.9811827956989247,
+ seconds: 2628000,
+ weeks: 4.345238095238095,
+ years: 0.08333333333333333,
+ },
+ };
const date1 = new Date('2024-08-01T07:21:46Z');
const date2 = new Date('2024-08-31T17:21:46Z');
@@ -88,8 +99,8 @@ describe('days-calculator', () => {
businessSecondsFormatted: '11d 5h 38m 14s',
differenceFormatted: '29d 10h',
differenceSeconds: 2541600,
+ ...totalDiff1,
totalDifferenceFormatted: '30d 10h',
- totalDifferenceSeconds: 2628000,
holidays,
...daysInfos,
});
@@ -112,8 +123,16 @@ describe('days-calculator', () => {
businessSecondsFormatted: '10d 20h 38m 14.9s',
differenceFormatted: '28d 16h 38m 13.9s',
differenceSeconds: 2479093.999,
+ totalDifference: {
+ days: 29.69321758101852,
+ hours: 712.6372219444445,
+ minutes: 42758.233316666665,
+ months: 0.9578457284199522,
+ seconds: 2565493.999,
+ weeks: 4.241888225859788,
+ years: 0.08135128104388635,
+ },
totalDifferenceFormatted: '29d 16h 38m 13.9s',
- totalDifferenceSeconds: 2565493.999,
holidays,
...daysInfos,
saturdays: [
@@ -142,8 +161,8 @@ describe('days-calculator', () => {
businessSecondsFormatted: '8d 5h 38m 14s',
differenceFormatted: '21d 14h 38m 14s',
differenceSeconds: 1867094,
+ ...totalDiff1,
totalDifferenceFormatted: '30d 10h',
- totalDifferenceSeconds: 2628000,
holidays,
...daysInfos,
});
@@ -167,7 +186,7 @@ describe('days-calculator', () => {
differenceFormatted: '4d',
differenceSeconds: 345600,
totalDifferenceFormatted: '30d 10h',
- totalDifferenceSeconds: 2628000,
+ ...totalDiff1,
holidays,
...daysInfos,
});
diff --git a/src/tools/days-calculator/days-calculator.service.ts b/src/tools/days-calculator/days-calculator.service.ts
index afdbf54a6..20fc101dd 100644
--- a/src/tools/days-calculator/days-calculator.service.ts
+++ b/src/tools/days-calculator/days-calculator.service.ts
@@ -7,7 +7,15 @@ import { BusinessTime, type Holiday } from './business-time-calculator';
interface DateTimeRange {
startDate: Date
endDate: Date
- totalDifferenceSeconds: number
+ totalDifference: {
+ years: number
+ months: number
+ weeks: number
+ days: number
+ hours: number
+ minutes: number
+ seconds: number
+ }
totalDifferenceFormatted: string
differenceSeconds: number
differenceFormatted: string
@@ -96,6 +104,12 @@ export function diffDateTimes({
const startEnd = { start: startDateTime, end: endDateTime };
const totalDifferenceSeconds = endDateTime.diff(startDateTime, 'seconds').toObject().seconds || 0;
+ const totalDifferenceMinutes = endDateTime.diff(startDateTime, 'minutes').toObject().minutes || 0;
+ const totalDifferenceHours = endDateTime.diff(startDateTime, 'hours').toObject().hours || 0;
+ const totalDifferenceDays = endDateTime.diff(startDateTime, 'days').toObject().days || 0;
+ const totalDifferenceWeeks = endDateTime.diff(startDateTime, 'weeks').toObject().weeks || 0;
+ const totalDifferenceMonths = endDateTime.diff(startDateTime, 'months').toObject().months || 0;
+ const totalDifferenceYears = endDateTime.diff(startDateTime, 'years').toObject().years || 0;
const differenceSeconds = differenceTimeComputer.computeBusinessSecondsInInterval(startEnd);
const businessSeconds = businessTimeComputer.computeBusinessSecondsInInterval(startEnd);
const weekDaysDates = datesByDays(startDateTime, endDateTime);
@@ -103,7 +117,15 @@ export function diffDateTimes({
return {
startDate: startDateTime.toJSDate(),
endDate: endDateTime.toJSDate(),
- totalDifferenceSeconds,
+ totalDifference: {
+ years: totalDifferenceYears,
+ months: totalDifferenceMonths,
+ weeks: totalDifferenceWeeks,
+ days: totalDifferenceDays,
+ hours: totalDifferenceHours,
+ minutes: totalDifferenceMinutes,
+ seconds: totalDifferenceSeconds,
+ },
totalDifferenceFormatted: prettyMilliseconds(totalDifferenceSeconds * 1000),
differenceSeconds,
differenceFormatted: prettyMilliseconds(differenceSeconds * 1000),
diff --git a/src/tools/days-calculator/days-calculator.vue b/src/tools/days-calculator/days-calculator.vue
index 73ef88880..54d5cfab5 100644
--- a/src/tools/days-calculator/days-calculator.vue
+++ b/src/tools/days-calculator/days-calculator.vue
@@ -146,14 +146,23 @@ const inputProps = {
-
+
+
+
+
+
+
+
+
+
+
@@ -161,6 +170,7 @@ const inputProps = {
+