# date-arithmetic **Repository Path**: ArkTSCentralRepository/date-arithmetic ## Basic Information - **Project Name**: date-arithmetic - **Description**: simple date math util - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-22 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # date-arithmetic 基于[date-arithmetic](https://www.npmjs.com/package/date-arithmetic)原库4.1.1版本进行适配 A simple object containing some date math utils in the spirit of Moment.js. Unlike Moment this module, returns real date objects, so it isn't chainable. ## Install ```sh ohpm install date-arithmetic ``` ## Usage ```typescript import * as dateMath from 'date-arithmetic'; const date = new Date( 2014 /* year */ , 1 /* month */ , 18 /* day */ , 8 /* hour */ , 25 /* min */ , 30 /* sec */ , 5); /* ms */ expect(dateMath.year(date)).assertEqual(2014); expect(dateMath.month(date)).assertEqual(1); expect(dateMath.date(date)).assertEqual(18); expect(dateMath.day(date)).assertEqual(2); expect(dateMath.hours(date)).assertEqual(8); expect(dateMath.minutes(date)).assertEqual(25); expect(dateMath.seconds(date)).assertEqual(30); expect(dateMath.milliseconds(date)).assertEqual(5); ``` ## API all api methods return a _new_ date. Date objects are never mutated. ### Accessors get and set date part values. - `dateMath.milliseconds(date, [value])` - `dateMath.seconds(date, [value])` - `dateMath.minutes(date, [value])` - `dateMath.hours(date, [value])` - `dateMath.date(date, [value])` - `dateMath.day(date, [value])` - `dateMath.weekday(date, [value], [firstOfWeek = 0])` - `dateMath.month(date, [value])` - `dateMath.year(date, [value])` - `dateMath.decade(date, [value])` - `dateMath.century(date, [value])` ### `startOf(data, unit, [firstOfWeek = 0])` return a new date with the relevent date parts zero'd out. You only need to provide a `firstOfWeek` when the unit is `'week'` dateMath.startOf(new Date, 'day') // -> no time components Valid unit values are; `"seconds", "minutes", "hours", "day", "week", "month", "year", "decade", "century" ` ### `endOf(data, unit)` the opposite of `startOf` dateMath.endOf(new Date, 'day') // -> one millisecond before tomorrow Valid unit values are; `"milliseconds", "seconds", "minutes", "hours", "day", "weekday", "month", "year", "decade", "century"`. ### Math Functions Arithmetic functions - `dateMath.add(date, value, unit)` - `dateMath.subtract(date, value, unit)` - `dateMath.eq(dateA, dateB, [unit])` - `dateMath.neq(dateA, dateB, [unit])` - `dateMath.gte(dateA, dateB, [unit])` - `dateMath.gt(dateA, dateB, [unit])` - `dateMath.lte(dateA, dateB, [unit])` - `dateMath.lt(dateA, dateB, [unit])` - `dateMath.inRange(day, min, max, unit)` - `dateMath.min(dateA, dateB, dateN)` - `dateMath.max(dateA, dateB, dateN)` - `dateMath.diff(dateA, dateB, unit, asFloat)` Valid unit values are; `"seconds", "minutes", "hours", "day", "week", "month", "year", "decade", "century" `