From fb4f9bbb606bd6b72034de5834f442a6b45b8668 Mon Sep 17 00:00:00 2001 From: lidong-sal Date: Tue, 16 Jun 2026 10:52:46 +0800 Subject: [PATCH] =?UTF-8?q?Add=20new=20tool:=20=E6=97=A5=E6=9C=9F=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E5=99=A8=20=E2=80=94=20=E6=97=A5=E6=9C=9F=E5=8A=A0?= =?UTF-8?q?=E5=87=8F=E4=B8=8E=E4=B8=A4=E4=B8=AA=E6=97=A5=E6=9C=9F=E9=97=B4?= =?UTF-8?q?=E9=9A=94=E5=A4=A9=E6=95=B0=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 1 + locales/en.yml | 19 +++ locales/zh.yml | 19 +++ src/tools/date-calculator/date-calculator.vue | 141 ++++++++++++++++++ src/tools/date-calculator/index.ts | 13 ++ src/tools/index.ts | 2 + 6 files changed, 195 insertions(+) create mode 100644 src/tools/date-calculator/date-calculator.vue create mode 100644 src/tools/date-calculator/index.ts diff --git a/components.d.ts b/components.d.ts index c1719787..5da66697 100644 --- a/components.d.ts +++ b/components.d.ts @@ -67,6 +67,7 @@ declare module '@vue/runtime-core' { CTooltip: typeof import('./src/ui/c-tooltip/c-tooltip.vue')['default'] 'CTooltip.demo': typeof import('./src/ui/c-tooltip/c-tooltip.demo.vue')['default'] CurlToCode: typeof import('./src/tools/curl-to-code/curl-to-code.vue')['default'] + DateCalculator: typeof import('./src/tools/date-calculator/date-calculator.vue')['default'] DateTimeConverter: typeof import('./src/tools/date-time-converter/date-time-converter.vue')['default'] 'DemoHome.page': typeof import('./src/ui/demo/demo-home.page.vue')['default'] DemoWrapper: typeof import('./src/ui/demo/demo-wrapper.vue')['default'] diff --git a/locales/en.yml b/locales/en.yml index cab2c618..befdf937 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -297,6 +297,25 @@ tools: title: JWT parser description: Parse and decode your JSON Web Token (jwt) and display its content. + date-calculator: + title: Date calculator + description: Add or subtract days from a date, or calculate the number of days between two dates. + offset: + sectionTitle: Date after / before N days + baseDate: Start date + days: Days offset + daysHint: Use a negative number to go backwards + resultLabel: Result date + diff: + sectionTitle: Days between two dates + startDate: Start date + targetDate: Target date + resultLabel: Difference + dayUnit: days + directionAfter: Target date is after the start date + directionBefore: Target date is before the start date + directionSame: Same date + date-converter: title: Date-time converter description: Convert date and time into the various different formats diff --git a/locales/zh.yml b/locales/zh.yml index 9135b32b..65d24c17 100644 --- a/locales/zh.yml +++ b/locales/zh.yml @@ -293,6 +293,25 @@ tools: title: JWT 解析器 description: 解析和解码JSON Web Token(jwt)并显示其内容。 + date-calculator: + title: 日期计算器 + description: 推算几天前/后的日期,或计算两个日期之间相差的天数。 + offset: + sectionTitle: 推算几天前 / 后的日期 + baseDate: 起始日期 + days: 偏移天数 + daysHint: 输入负数则往前推算 + resultLabel: 结果日期 + diff: + sectionTitle: 计算两个日期相差 + startDate: 开始日期 + targetDate: 目标日期 + resultLabel: 相差 + dayUnit: 天 + directionAfter: 目标日期比起始日期晚 + directionBefore: 目标日期比起始日期早 + directionSame: 两个日期为同一天 + date-converter: title: 日期时间转换器 description: 将日期和时间转换为各种不同的格式 diff --git a/src/tools/date-calculator/date-calculator.vue b/src/tools/date-calculator/date-calculator.vue new file mode 100644 index 00000000..621b2c4d --- /dev/null +++ b/src/tools/date-calculator/date-calculator.vue @@ -0,0 +1,141 @@ + + + + + diff --git a/src/tools/date-calculator/index.ts b/src/tools/date-calculator/index.ts new file mode 100644 index 00000000..2ab05e53 --- /dev/null +++ b/src/tools/date-calculator/index.ts @@ -0,0 +1,13 @@ +import { Calculator } from '@vicons/tabler'; +import { defineTool } from '../tool'; +import { translate } from '@/plugins/i18n.plugin'; + +export const tool = defineTool({ + name: translate('tools.date-calculator.title'), + path: '/date-calculator', + description: translate('tools.date-calculator.description'), + keywords: ['date', 'difference', 'days', 'calculator', 'add', 'subtract', 'duration', 'between', 'offset'], + component: () => import('./date-calculator.vue'), + icon: Calculator, + createdAt: new Date('2026-06-15'), +}); diff --git a/src/tools/index.ts b/src/tools/index.ts index 4bc036c1..3414b675 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -61,6 +61,7 @@ import { tool as chmodCalculator } from './chmod-calculator'; import { tool as chronometer } from './chronometer'; import { tool as colorConverter } from './color-converter'; import { tool as crontabGenerator } from './crontab-generator'; +import { tool as dateCalculator } from './date-calculator'; import { tool as dateTimeConverter } from './date-time-converter'; import { tool as deviceInformation } from './device-information'; import { tool as cypher } from './encryption'; @@ -127,6 +128,7 @@ export const toolsByCategory: ToolCategory[] = [ name: 'Converter', components: [ byteUnitConverter, + dateCalculator, dateTimeConverter, baseConverter, romanNumeralConverter,