File tree 3 files changed +52
-0
lines changed
src/plugin/isoWeeksInYear
3 files changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ export default ( o , c ) => {
2
+ const proto = c . prototype
3
+ proto . isoWeeksInYear = function ( ) {
4
+ const isLeapYear = this . isLeapYear ( )
5
+ const last = this . endOf ( 'y' )
6
+ const day = last . day ( )
7
+ if ( day === 4 || ( isLeapYear && day === 5 ) ) {
8
+ return 53
9
+ }
10
+ return 52
11
+ }
12
+ }
Original file line number Diff line number Diff line change
1
+ import MockDate from 'mockdate'
2
+ import dayjs from '../../src'
3
+ import isoWeeksInYear from '../../src/plugin/isoWeeksInYear'
4
+ import isLeapYear from '../../src/plugin/isLeapYear'
5
+
6
+ dayjs . extend ( isoWeeksInYear )
7
+ dayjs . extend ( isLeapYear )
8
+
9
+ beforeEach ( ( ) => {
10
+ MockDate . set ( new Date ( ) )
11
+ } )
12
+
13
+ afterEach ( ( ) => {
14
+ MockDate . reset ( )
15
+ } )
16
+
17
+ it ( 'isoWeeksInYear' , ( ) => {
18
+ expect ( dayjs ( '2004' ) . isoWeeksInYear ( ) ) . toBe ( 53 )
19
+ expect ( dayjs ( '2005' ) . isoWeeksInYear ( ) ) . toBe ( 52 )
20
+ expect ( dayjs ( '2006' ) . isoWeeksInYear ( ) ) . toBe ( 52 )
21
+ expect ( dayjs ( '2007' ) . isoWeeksInYear ( ) ) . toBe ( 52 )
22
+ expect ( dayjs ( '2008' ) . isoWeeksInYear ( ) ) . toBe ( 52 )
23
+ expect ( dayjs ( '2009' ) . isoWeeksInYear ( ) ) . toBe ( 53 )
24
+ expect ( dayjs ( '2010' ) . isoWeeksInYear ( ) ) . toBe ( 52 )
25
+ expect ( dayjs ( '2011' ) . isoWeeksInYear ( ) ) . toBe ( 52 )
26
+ expect ( dayjs ( '2012' ) . isoWeeksInYear ( ) ) . toBe ( 52 )
27
+ expect ( dayjs ( '2013' ) . isoWeeksInYear ( ) ) . toBe ( 52 )
28
+ expect ( dayjs ( '2014' ) . isoWeeksInYear ( ) ) . toBe ( 52 )
29
+ expect ( dayjs ( '2015' ) . isoWeeksInYear ( ) ) . toBe ( 53 )
30
+ } )
Original file line number Diff line number Diff line change
1
+ import { PluginFunc } from 'dayjs'
2
+
3
+ declare const plugin : PluginFunc
4
+ export = plugin
5
+
6
+ declare module 'dayjs' {
7
+ interface Dayjs {
8
+ isoWeeksInYear ( ) : number
9
+ }
10
+ }
You can’t perform that action at this time.
0 commit comments