Skip to content

Commit 77eaa3b

Browse files
Add yearsToDays Function
1 parent 817ce9f commit 77eaa3b

File tree

5 files changed

+54
-0
lines changed

5 files changed

+54
-0
lines changed

package.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,10 @@
993993
"require": "./yearsToMonths.js",
994994
"import": "./yearsToMonths.mjs"
995995
},
996+
"./yearsToDays": {
997+
"require": "./yearsToDays.js",
998+
"import": "./yearsToDays.mjs"
999+
},
9961000
"./yearsToQuarters": {
9971001
"require": "./yearsToQuarters.js",
9981002
"import": "./yearsToQuarters.mjs"
@@ -2009,6 +2013,10 @@
20092013
"require": "./fp/yearsToMonths.js",
20102014
"import": "./fp/yearsToMonths.mjs"
20112015
},
2016+
"./fp/yearsToDays": {
2017+
"require": "./fp/yearsToDays.js",
2018+
"import": "./fp/yearsToDays.mjs"
2019+
},
20122020
"./fp/yearsToQuarters": {
20132021
"require": "./fp/yearsToQuarters.js",
20142022
"import": "./fp/yearsToQuarters.mjs"

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,5 +240,6 @@ export { default as toDate } from './toDate/index'
240240
export { default as transpose } from './transpose/index'
241241
export { default as weeksToDays } from './weeksToDays/index'
242242
export { default as yearsToMonths } from './yearsToMonths/index'
243+
export { default as yearsToDays } from './yearsToDays/index'
243244
export { default as yearsToQuarters } from './yearsToQuarters/index'
244245
export * from './constants/index'

src/yearsToDays/index.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { daysInYear } from '../constants/index'
2+
3+
/**
4+
* @name yearsToDays
5+
* @category Conversion Helpers
6+
* @summary Convert years to days.
7+
*
8+
* @description
9+
* Convert a number of years to a full number of days.
10+
*
11+
* @param years - The number of years to be converted
12+
*
13+
* @returns The number of years converted in days
14+
*
15+
* @example
16+
* // Convert 2 years into days
17+
* const result = yearsToDays(2)
18+
* //=> 24
19+
*/
20+
export default function yearsToDays(years: number): number {
21+
return Math.floor(years * daysInYear)
22+
}

src/yearsToDays/test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/* eslint-env mocha */
2+
3+
import assert from 'assert'
4+
import { describe, it } from 'vitest'
5+
import yearsToDays from './index'
6+
7+
describe('yearsToDays', () => {
8+
it('converts years to days', () => {
9+
assert(yearsToDays(1) === 365)
10+
assert(yearsToDays(2) === 730)
11+
})
12+
13+
it('uses floor rounding', () => {
14+
assert(yearsToDays(1.7) === 620)
15+
assert(yearsToDays(0.1) === 36)
16+
})
17+
18+
it('handles border values', () => {
19+
assert(yearsToDays(1.5) === 547)
20+
assert(yearsToDays(0) === 0)
21+
})
22+
})

typedoc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@
242242
"./src/transpose/index.ts",
243243
"./src/weeksToDays/index.ts",
244244
"./src/yearsToMonths/index.ts",
245+
"./src/yearsToDays/index.ts",
245246
"./src/yearsToQuarters/index.ts",
246247
"./src/constants/index.ts"
247248
],

0 commit comments

Comments
 (0)