@simplysm/core-common 13.0.99 → 14.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common.types.d.ts +14 -14
- package/dist/common.types.js +2 -1
- package/dist/common.types.js.map +1 -6
- package/dist/env.d.ts +5 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +12 -8
- package/dist/env.js.map +1 -6
- package/dist/errors/argument-error.d.ts +10 -10
- package/dist/errors/argument-error.d.ts.map +1 -1
- package/dist/errors/argument-error.js +31 -14
- package/dist/errors/argument-error.js.map +1 -6
- package/dist/errors/not-implemented-error.d.ts +8 -8
- package/dist/errors/not-implemented-error.js +30 -12
- package/dist/errors/not-implemented-error.js.map +1 -6
- package/dist/errors/sd-error.d.ts +10 -10
- package/dist/errors/sd-error.d.ts.map +1 -1
- package/dist/errors/sd-error.js +45 -24
- package/dist/errors/sd-error.js.map +1 -6
- package/dist/errors/timeout-error.d.ts +10 -10
- package/dist/errors/timeout-error.js +34 -15
- package/dist/errors/timeout-error.js.map +1 -6
- package/dist/extensions/arr-ext.d.ts +2 -2
- package/dist/extensions/arr-ext.helpers.d.ts +10 -10
- package/dist/extensions/arr-ext.helpers.js +112 -89
- package/dist/extensions/arr-ext.helpers.js.map +1 -6
- package/dist/extensions/arr-ext.js +458 -422
- package/dist/extensions/arr-ext.js.map +1 -6
- package/dist/extensions/arr-ext.types.d.ts +57 -57
- package/dist/extensions/arr-ext.types.d.ts.map +1 -1
- package/dist/extensions/arr-ext.types.js +6 -1
- package/dist/extensions/arr-ext.types.js.map +1 -6
- package/dist/extensions/map-ext.d.ts +16 -16
- package/dist/extensions/map-ext.js +27 -22
- package/dist/extensions/map-ext.js.map +1 -6
- package/dist/extensions/set-ext.d.ts +11 -11
- package/dist/extensions/set-ext.js +32 -25
- package/dist/extensions/set-ext.js.map +1 -6
- package/dist/features/debounce-queue.d.ts +17 -17
- package/dist/features/debounce-queue.js +98 -70
- package/dist/features/debounce-queue.js.map +1 -6
- package/dist/features/event-emitter.d.ts +20 -20
- package/dist/features/event-emitter.js +101 -78
- package/dist/features/event-emitter.js.map +1 -6
- package/dist/features/serial-queue.d.ts +11 -11
- package/dist/features/serial-queue.js +78 -57
- package/dist/features/serial-queue.js.map +1 -6
- package/dist/globals.d.ts +4 -4
- package/dist/globals.js +9 -1
- package/dist/globals.js.map +1 -6
- package/dist/index.js +28 -27
- package/dist/index.js.map +1 -6
- package/dist/types/date-only.d.ts +64 -64
- package/dist/types/date-only.d.ts.map +1 -1
- package/dist/types/date-only.js +263 -252
- package/dist/types/date-only.js.map +1 -6
- package/dist/types/date-time.d.ts +36 -36
- package/dist/types/date-time.d.ts.map +1 -1
- package/dist/types/date-time.js +196 -288
- package/dist/types/date-time.js.map +1 -6
- package/dist/types/lazy-gc-map.d.ts +26 -26
- package/dist/types/lazy-gc-map.d.ts.map +1 -1
- package/dist/types/lazy-gc-map.js +202 -159
- package/dist/types/lazy-gc-map.js.map +1 -6
- package/dist/types/time.d.ts +23 -23
- package/dist/types/time.d.ts.map +1 -1
- package/dist/types/time.js +169 -158
- package/dist/types/time.js.map +1 -6
- package/dist/types/uuid.d.ts +11 -11
- package/dist/types/uuid.d.ts.map +1 -1
- package/dist/types/uuid.js +95 -70
- package/dist/types/uuid.js.map +1 -6
- package/dist/utils/bytes.d.ts +17 -17
- package/dist/utils/bytes.js +137 -81
- package/dist/utils/bytes.js.map +1 -6
- package/dist/utils/date-format.d.ts +40 -40
- package/dist/utils/date-format.js +187 -101
- package/dist/utils/date-format.js.map +1 -6
- package/dist/utils/error.d.ts +4 -4
- package/dist/utils/error.js +11 -6
- package/dist/utils/error.js.map +1 -6
- package/dist/utils/json.d.ts +19 -19
- package/dist/utils/json.js +187 -135
- package/dist/utils/json.js.map +1 -6
- package/dist/utils/num.d.ts +20 -20
- package/dist/utils/num.js +76 -34
- package/dist/utils/num.js.map +1 -6
- package/dist/utils/obj.d.ts +111 -111
- package/dist/utils/obj.d.ts.map +1 -1
- package/dist/utils/obj.js +706 -496
- package/dist/utils/obj.js.map +1 -6
- package/dist/utils/path.d.ts +10 -10
- package/dist/utils/path.js +35 -18
- package/dist/utils/path.js.map +1 -6
- package/dist/utils/primitive.d.ts +5 -5
- package/dist/utils/primitive.js +34 -14
- package/dist/utils/primitive.js.map +1 -6
- package/dist/utils/str.d.ts +38 -38
- package/dist/utils/str.js +217 -113
- package/dist/utils/str.js.map +1 -6
- package/dist/utils/template-strings.d.ts +26 -26
- package/dist/utils/template-strings.js +113 -40
- package/dist/utils/template-strings.js.map +1 -6
- package/dist/utils/transferable.d.ts +18 -18
- package/dist/utils/transferable.js +218 -151
- package/dist/utils/transferable.js.map +1 -6
- package/dist/utils/wait.d.ts +9 -9
- package/dist/utils/wait.js +30 -15
- package/dist/utils/wait.js.map +1 -6
- package/dist/utils/xml.d.ts +13 -13
- package/dist/utils/xml.js +84 -46
- package/dist/utils/xml.js.map +1 -6
- package/dist/utils/zip.d.ts +22 -22
- package/dist/utils/zip.js +172 -148
- package/dist/utils/zip.js.map +1 -6
- package/package.json +5 -7
- package/src/common.types.ts +14 -14
- package/src/env.ts +9 -1
- package/src/errors/argument-error.ts +15 -15
- package/src/errors/not-implemented-error.ts +9 -9
- package/src/errors/sd-error.ts +12 -12
- package/src/errors/timeout-error.ts +12 -12
- package/src/extensions/arr-ext.helpers.ts +16 -16
- package/src/extensions/arr-ext.ts +35 -35
- package/src/extensions/arr-ext.types.ts +57 -57
- package/src/extensions/map-ext.ts +16 -16
- package/src/extensions/set-ext.ts +11 -11
- package/src/features/debounce-queue.ts +23 -23
- package/src/features/event-emitter.ts +25 -25
- package/src/features/serial-queue.ts +13 -13
- package/src/globals.ts +4 -4
- package/src/index.ts +5 -5
- package/src/types/date-only.ts +84 -83
- package/src/types/date-time.ts +43 -42
- package/src/types/lazy-gc-map.ts +44 -44
- package/src/types/time.ts +29 -29
- package/src/types/uuid.ts +15 -15
- package/src/utils/bytes.ts +35 -35
- package/src/utils/date-format.ts +59 -59
- package/src/utils/error.ts +4 -4
- package/src/utils/json.ts +41 -41
- package/src/utils/num.ts +20 -20
- package/src/utils/obj.ts +138 -138
- package/src/utils/path.ts +10 -10
- package/src/utils/primitive.ts +6 -6
- package/src/utils/str.ts +48 -48
- package/src/utils/template-strings.ts +29 -29
- package/src/utils/transferable.ts +38 -38
- package/src/utils/wait.ts +10 -10
- package/src/utils/xml.ts +19 -19
- package/src/utils/zip.ts +25 -25
- package/README.md +0 -160
- package/docs/errors.md +0 -119
- package/docs/extensions.md +0 -387
- package/docs/features.md +0 -143
- package/docs/types.md +0 -287
- package/docs/utils.md +0 -757
- package/tests/errors/errors.spec.ts +0 -80
- package/tests/extensions/array-extension.spec.ts +0 -654
- package/tests/extensions/map-extension.spec.ts +0 -117
- package/tests/extensions/set-extension.spec.ts +0 -67
- package/tests/types/date-only.spec.ts +0 -533
- package/tests/types/date-time.spec.ts +0 -246
- package/tests/types/lazy-gc-map.spec.ts +0 -606
- package/tests/types/time.spec.ts +0 -428
- package/tests/types/uuid.spec.ts +0 -74
- package/tests/utils/bytes-utils.spec.ts +0 -197
- package/tests/utils/date-format.spec.ts +0 -350
- package/tests/utils/debounce-queue.spec.ts +0 -226
- package/tests/utils/json.spec.ts +0 -400
- package/tests/utils/number.spec.ts +0 -136
- package/tests/utils/object.spec.ts +0 -810
- package/tests/utils/path.spec.ts +0 -70
- package/tests/utils/primitive.spec.ts +0 -43
- package/tests/utils/sd-event-emitter.spec.ts +0 -189
- package/tests/utils/serial-queue.spec.ts +0 -305
- package/tests/utils/string.spec.ts +0 -265
- package/tests/utils/template-strings.spec.ts +0 -48
- package/tests/utils/transferable.spec.ts +0 -639
- package/tests/utils/wait.spec.ts +0 -123
- package/tests/utils/xml.spec.ts +0 -146
- package/tests/utils/zip.spec.ts +0 -221
package/dist/types/date-only.js
CHANGED
|
@@ -1,261 +1,272 @@
|
|
|
1
1
|
import { ArgumentError } from "../errors/argument-error.js";
|
|
2
2
|
import { format, normalizeMonth } from "../utils/date-format.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
3
|
+
/**
|
|
4
|
+
* 날짜 클래스 (시간 제외: yyyy-MM-dd, 불변)
|
|
5
|
+
*
|
|
6
|
+
* 시간 정보 없이 날짜만 저장하는 불변 클래스.
|
|
7
|
+
* 로컬 타임존 기준으로 동작함.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* const today = new DateOnly();
|
|
11
|
+
* const specific = new DateOnly(2025, 1, 15);
|
|
12
|
+
* const parsed = DateOnly.parse("2025-01-15");
|
|
13
|
+
*/
|
|
14
|
+
export class DateOnly {
|
|
15
|
+
static MS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
16
|
+
date;
|
|
17
|
+
constructor(arg1, arg2, arg3) {
|
|
18
|
+
if (arg1 === undefined) {
|
|
19
|
+
const tick = Date.now();
|
|
20
|
+
const date = new Date(tick);
|
|
21
|
+
this.date = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
22
|
+
}
|
|
23
|
+
else if (arg2 !== undefined && arg3 !== undefined) {
|
|
24
|
+
this.date = new Date(arg1, arg2 - 1, arg3);
|
|
25
|
+
}
|
|
26
|
+
else if (arg1 instanceof Date) {
|
|
27
|
+
const date = arg1;
|
|
28
|
+
this.date = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const date = new Date(arg1);
|
|
32
|
+
this.date = new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
|
33
|
+
}
|
|
19
34
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
/**
|
|
36
|
+
* 문자열을 DateOnly로 파싱
|
|
37
|
+
* @param str 날짜 문자열
|
|
38
|
+
* @returns DateOnly 인스턴스
|
|
39
|
+
*
|
|
40
|
+
* 지원 형식:
|
|
41
|
+
* - `yyyy-MM-dd` (예: '2024-01-15') - 문자열에서 직접 추출, 타임존 무관
|
|
42
|
+
* - `yyyyMMdd` (예: '20240115') - 문자열에서 직접 추출, 타임존 무관
|
|
43
|
+
* - ISO 8601 (예: '2024-01-15T00:00:00Z') - UTC로 해석 후 로컬 타임존으로 변환
|
|
44
|
+
*
|
|
45
|
+
* @note 서버/클라이언트 타임존이 다른 경우 `yyyy-MM-dd` 형식 권장
|
|
46
|
+
* @note DST 지역에서 ISO 8601 형식 파싱 시 파싱 대상 날짜의 오프셋이 사용됨.
|
|
47
|
+
*/
|
|
48
|
+
static parse(str) {
|
|
49
|
+
// yyyy-MM-dd 형식 (타임존 무관)
|
|
50
|
+
const matchYMD = /^(\d{4})-(\d{2})-(\d{2})$/.exec(str);
|
|
51
|
+
if (matchYMD != null) {
|
|
52
|
+
return new DateOnly(Number(matchYMD[1]), Number(matchYMD[2]), Number(matchYMD[3]));
|
|
53
|
+
}
|
|
54
|
+
// yyyyMMdd 형식 (타임존 무관)
|
|
55
|
+
const matchCompact = /^(\d{4})(\d{2})(\d{2})$/.exec(str);
|
|
56
|
+
if (matchCompact != null) {
|
|
57
|
+
return new DateOnly(Number(matchCompact[1]), Number(matchCompact[2]), Number(matchCompact[3]));
|
|
58
|
+
}
|
|
59
|
+
// ISO 8601 및 기타 형식 (Date.parse 사용, 타임존 변환 적용)
|
|
60
|
+
// Date.parse()는 'Z' 접미사가 있는 ISO 8601에 대해 UTC tick을 반환
|
|
61
|
+
// getTimezoneOffset()은 "로컬에서 UTC로 변환할 때 더해야 하는 분"을 반환 (KST는 -540 = UTC+9)
|
|
62
|
+
// 여기서는 "UTC → 로컬" 변환이므로 반대 부호 적용 (빼기)
|
|
63
|
+
// DST 지역에서 정확한 변환을 위해 파싱 대상 날짜의 오프셋 사용
|
|
64
|
+
const utcTick = Date.parse(str);
|
|
65
|
+
if (!Number.isNaN(utcTick)) {
|
|
66
|
+
const tempDate = new Date(utcTick);
|
|
67
|
+
const offsetMinutes = tempDate.getTimezoneOffset();
|
|
68
|
+
const localTick = utcTick - offsetMinutes * 60 * 1000;
|
|
69
|
+
return new DateOnly(localTick);
|
|
70
|
+
}
|
|
71
|
+
throw new ArgumentError(`날짜 형식 파싱 실패. 지원 형식: 'yyyy-MM-dd', 'yyyyMMdd', ISO 8601 date`, {
|
|
72
|
+
input: str,
|
|
73
|
+
});
|
|
38
74
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
75
|
+
//#region 주차 계산
|
|
76
|
+
/**
|
|
77
|
+
* 주차 정보 기반으로 기준 연도와 월 반환
|
|
78
|
+
* @param weekStartDay 주 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
|
|
79
|
+
* @param minDaysInFirstWeek 첫 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
|
|
80
|
+
* @returns 이 날짜가 포함된 주의 기준 연도와 월
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* // ISO 8601 표준 (월요일 시작, 첫 주 최소 4일)
|
|
84
|
+
* new DateOnly(2024, 1, 1).getBaseYearMonthSeqForWeekSeq(1, 4)
|
|
85
|
+
* // 미국식 (일요일 시작, 첫 주 최소 1일)
|
|
86
|
+
* new DateOnly(2024, 1, 1).getBaseYearMonthSeqForWeekSeq(0, 1)
|
|
87
|
+
*/
|
|
88
|
+
getBaseYearMonthSeqForWeekSeq(weekStartDay = 1, minDaysInFirstWeek = 4) {
|
|
89
|
+
// 주 시작 요일 기준 요일 인덱스 계산 (0 = 주 시작 요일)
|
|
90
|
+
const dayOfWeek = (this.dayOfWeek + 7 - weekStartDay) % 7;
|
|
91
|
+
// 현재 주의 남은 일수 (현재 날짜 포함)
|
|
92
|
+
const daysInWeek = 7 - dayOfWeek;
|
|
93
|
+
// 현재 주의 남은 일수가 최소 일수보다 적으면 이전 주로 간주
|
|
94
|
+
if (daysInWeek < minDaysInFirstWeek) {
|
|
95
|
+
const prevWeek = this.addDays(-7);
|
|
96
|
+
return { year: prevWeek.year, monthSeq: prevWeek.month };
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// 월 경계를 고려한 실제 남은 일수 계산
|
|
100
|
+
const nextMonthDate = this.addMonths(1).setDay(1);
|
|
101
|
+
const remainedDays = (nextMonthDate.tick - this.tick) / DateOnly.MS_PER_DAY;
|
|
102
|
+
// 월 경계까지의 실제 일수와 주 남은 일수 중 작은 값 사용
|
|
103
|
+
const realDaysInWeek = Math.min(daysInWeek, remainedDays);
|
|
104
|
+
// 월 경계를 고려했을 때도 최소 일수보다 적으면 다음 주로 간주
|
|
105
|
+
if (realDaysInWeek < minDaysInFirstWeek) {
|
|
106
|
+
const nextWeek = this.addDays(7);
|
|
107
|
+
return { year: nextWeek.year, monthSeq: nextWeek.month };
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
return { year: this.year, monthSeq: this.month };
|
|
111
|
+
}
|
|
112
|
+
}
|
|
46
113
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
114
|
+
/**
|
|
115
|
+
* 주차 정보 기반으로 해당 주의 시작 날짜 계산
|
|
116
|
+
* @param weekStartDay 주 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
|
|
117
|
+
* @param minDaysInFirstWeek 첫 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
|
|
118
|
+
* @returns 이 날짜가 포함된 주의 시작 날짜
|
|
119
|
+
*/
|
|
120
|
+
getWeekSeqStartDate(weekStartDay = 1, minDaysInFirstWeek = 4) {
|
|
121
|
+
const dayOfWeek = (this.dayOfWeek + 7 - weekStartDay) % 7;
|
|
122
|
+
const daysInFirstWeek = 7 - dayOfWeek;
|
|
123
|
+
if (daysInFirstWeek < minDaysInFirstWeek) {
|
|
124
|
+
return this.addDays(-dayOfWeek + 7);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
return this.addDays(-dayOfWeek);
|
|
128
|
+
}
|
|
53
129
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const dayOfWeek = (this.dayOfWeek + 7 - weekStartDay) % 7;
|
|
76
|
-
const daysInWeek = 7 - dayOfWeek;
|
|
77
|
-
if (daysInWeek < minDaysInFirstWeek) {
|
|
78
|
-
const prevWeek = this.addDays(-7);
|
|
79
|
-
return { year: prevWeek.year, monthSeq: prevWeek.month };
|
|
80
|
-
} else {
|
|
81
|
-
const nextMonthDate = this.addMonths(1).setDay(1);
|
|
82
|
-
const remainedDays = (nextMonthDate.tick - this.tick) / DateOnly.MS_PER_DAY;
|
|
83
|
-
const realDaysInWeek = Math.min(daysInWeek, remainedDays);
|
|
84
|
-
if (realDaysInWeek < minDaysInFirstWeek) {
|
|
85
|
-
const nextWeek = this.addDays(7);
|
|
86
|
-
return { year: nextWeek.year, monthSeq: nextWeek.month };
|
|
87
|
-
} else {
|
|
88
|
-
return { year: this.year, monthSeq: this.month };
|
|
89
|
-
}
|
|
130
|
+
/**
|
|
131
|
+
* 연도와 주차 정보 반환
|
|
132
|
+
* @param weekStartDay 주 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
|
|
133
|
+
* @param minDaysInFirstWeek 첫 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
|
|
134
|
+
* @returns 해당 연도와 그 연도 내의 주차 번호
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* // ISO 8601 표준 (월요일 시작, 첫 주 최소 4일)
|
|
138
|
+
* new DateOnly(2025, 1, 6).getWeekSeqOfYear(); // { year: 2025, weekSeq: 2 }
|
|
139
|
+
*
|
|
140
|
+
* // 미국식 (일요일 시작, 첫 주 최소 1일)
|
|
141
|
+
* new DateOnly(2025, 1, 1).getWeekSeqOfYear(0, 1); // { year: 2025, weekSeq: 1 }
|
|
142
|
+
*/
|
|
143
|
+
getWeekSeqOfYear(weekStartDay = 1, minDaysInFirstWeek = 4) {
|
|
144
|
+
const base = this.getBaseYearMonthSeqForWeekSeq(weekStartDay, minDaysInFirstWeek);
|
|
145
|
+
const firstWeekStart = new DateOnly(base.year, 1, 1).getWeekSeqStartDate(weekStartDay, minDaysInFirstWeek);
|
|
146
|
+
const diffDays = (this.tick - firstWeekStart.tick) / DateOnly.MS_PER_DAY;
|
|
147
|
+
return {
|
|
148
|
+
year: base.year,
|
|
149
|
+
weekSeq: Math.floor(diffDays / 7) + 1,
|
|
150
|
+
};
|
|
90
151
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
152
|
+
/**
|
|
153
|
+
* 해당 날짜의 연도, 월, 주차 정보 반환
|
|
154
|
+
* @param weekStartDay 주 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
|
|
155
|
+
* @param minDaysInFirstWeek 첫 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
|
|
156
|
+
* @returns 연도, 월, 해당 월 내의 주차 번호
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* // ISO 8601 표준 (월요일 시작, 첫 주 최소 4일)
|
|
160
|
+
* new DateOnly(2025, 1, 15).getWeekSeqOfMonth(); // { year: 2025, monthSeq: 1, weekSeq: 3 }
|
|
161
|
+
*
|
|
162
|
+
* // 미국식 (일요일 시작, 첫 주 최소 1일)
|
|
163
|
+
* new DateOnly(2025, 1, 15).getWeekSeqOfMonth(0, 1); // { year: 2025, monthSeq: 1, weekSeq: 3 }
|
|
164
|
+
*/
|
|
165
|
+
getWeekSeqOfMonth(weekStartDay = 1, minDaysInFirstWeek = 4) {
|
|
166
|
+
const base = this.getBaseYearMonthSeqForWeekSeq(weekStartDay, minDaysInFirstWeek);
|
|
167
|
+
const firstWeekStart = new DateOnly(base.year, base.monthSeq, 1).getWeekSeqStartDate(weekStartDay, minDaysInFirstWeek);
|
|
168
|
+
const diffDays = (this.tick - firstWeekStart.tick) / DateOnly.MS_PER_DAY;
|
|
169
|
+
return {
|
|
170
|
+
year: base.year,
|
|
171
|
+
monthSeq: base.monthSeq,
|
|
172
|
+
weekSeq: Math.floor(diffDays / 7) + 1,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* 주차 정보 기반으로 해당 주의 시작 날짜 반환
|
|
177
|
+
* @param arg 연도, 선택적 월, 주차 번호
|
|
178
|
+
* @param weekStartDay 주 시작 요일 (0=일요일, 1=월요일, ..., 6=토요일). 기본값: 1(월요일)
|
|
179
|
+
* @param minDaysInFirstWeek 첫 번째 주로 간주되기 위한 최소 일수 (1~7). 기본값: 4 (ISO 8601 표준)
|
|
180
|
+
* @returns 지정된 주의 시작 날짜
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* // 2025년 2주차 시작 날짜 (ISO 8601 표준)
|
|
184
|
+
* DateOnly.getDateByYearWeekSeq({ year: 2025, weekSeq: 2 }); // 2025-01-06 (월요일)
|
|
185
|
+
*
|
|
186
|
+
* // 2025년 1월 3주차 시작 날짜
|
|
187
|
+
* DateOnly.getDateByYearWeekSeq({ year: 2025, month: 1, weekSeq: 3 }); // 2025-01-13 (월요일)
|
|
188
|
+
*/
|
|
189
|
+
static getDateByYearWeekSeq(arg, weekStartDay = 1, minDaysInFirstWeek = 4) {
|
|
190
|
+
return new DateOnly(arg.year, arg.month ?? 1, (arg.weekSeq - 1) * 7 + 1).getWeekSeqStartDate(weekStartDay, minDaysInFirstWeek);
|
|
191
|
+
}
|
|
192
|
+
//#endregion
|
|
193
|
+
//#region Getters (읽기 전용)
|
|
194
|
+
/** 날짜가 올바르게 설정되었는지 여부 */
|
|
195
|
+
get isValid() {
|
|
196
|
+
return this.date instanceof Date && !Number.isNaN(this.date.getTime());
|
|
197
|
+
}
|
|
198
|
+
get year() {
|
|
199
|
+
return this.date.getFullYear();
|
|
200
|
+
}
|
|
201
|
+
get month() {
|
|
202
|
+
return this.date.getMonth() + 1;
|
|
203
|
+
}
|
|
204
|
+
get day() {
|
|
205
|
+
return this.date.getDate();
|
|
206
|
+
}
|
|
207
|
+
get tick() {
|
|
208
|
+
return this.date.getTime();
|
|
209
|
+
}
|
|
210
|
+
/** 요일 (일요일~토요일: 0~6) */
|
|
211
|
+
get dayOfWeek() {
|
|
212
|
+
return this.date.getDay();
|
|
213
|
+
}
|
|
214
|
+
//#endregion
|
|
215
|
+
//#region 불변 변환 메서드 (새 인스턴스 반환)
|
|
216
|
+
/** 지정된 연도로 새 인스턴스 반환 */
|
|
217
|
+
setYear(year) {
|
|
218
|
+
const lastDay = new Date(year, this.month, 0).getDate();
|
|
219
|
+
return new DateOnly(year, this.month, Math.min(this.day, lastDay));
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* 지정된 월로 새 DateOnly 인스턴스 반환
|
|
223
|
+
* @param month 설정할 월 (1-12, 범위 밖의 값은 연도에서 조정됨)
|
|
224
|
+
* @note 현재 일이 대상 월의 일수보다 크면 해당 월의 마지막 일로 조정됨
|
|
225
|
+
* (예: 1월 31일에서 setMonth(2) → 2월 28일 또는 29일)
|
|
226
|
+
*/
|
|
227
|
+
setMonth(month) {
|
|
228
|
+
const normalized = normalizeMonth(this.year, month, this.day);
|
|
229
|
+
return new DateOnly(normalized.year, normalized.month, normalized.day);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* 지정된 일로 새 DateOnly 인스턴스 반환
|
|
233
|
+
* @param day 설정할 일
|
|
234
|
+
* @note 유효한 월 범위를 벗어나는 일은 JavaScript Date 동작에 따라 자동으로 다음/이전 월로 조정됨
|
|
235
|
+
* (예: 1월에 day=32 → 2월 1일)
|
|
236
|
+
*/
|
|
237
|
+
setDay(day) {
|
|
238
|
+
return new DateOnly(this.year, this.month, day);
|
|
239
|
+
}
|
|
240
|
+
//#endregion
|
|
241
|
+
//#region 산술 메서드 (새 인스턴스 반환)
|
|
242
|
+
/** 지정된 연수를 더한 새 인스턴스 반환 */
|
|
243
|
+
addYears(years) {
|
|
244
|
+
return this.setYear(this.year + years);
|
|
245
|
+
}
|
|
246
|
+
/** 지정된 월수를 더한 새 인스턴스 반환 */
|
|
247
|
+
addMonths(months) {
|
|
248
|
+
return this.setMonth(this.month + months);
|
|
249
|
+
}
|
|
250
|
+
/** 지정된 일수를 더한 새 인스턴스 반환 */
|
|
251
|
+
addDays(days) {
|
|
252
|
+
return new DateOnly(this.tick + days * DateOnly.MS_PER_DAY);
|
|
253
|
+
}
|
|
254
|
+
//#endregion
|
|
255
|
+
//#region Formatting
|
|
256
|
+
/**
|
|
257
|
+
* 지정된 형식으로 문자열 변환
|
|
258
|
+
* @param format 형식 문자열
|
|
259
|
+
* @see dtFormat 지원되는 형식 문자열 참조
|
|
260
|
+
*/
|
|
261
|
+
toFormatString(formatStr) {
|
|
262
|
+
return format(formatStr, {
|
|
263
|
+
year: this.year,
|
|
264
|
+
month: this.month,
|
|
265
|
+
day: this.day,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
toString() {
|
|
269
|
+
return this.toFormatString("yyyy-MM-dd");
|
|
105
270
|
}
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Return year and week sequence information
|
|
109
|
-
* @param weekStartDay Week start day (0=Sunday, 1=Monday, ..., 6=Saturday). Default: 1(Monday)
|
|
110
|
-
* @param minDaysInFirstWeek Minimum days to be considered the first week (1~7). Default: 4 (ISO 8601 standard)
|
|
111
|
-
* @returns Year and week number within that year
|
|
112
|
-
*
|
|
113
|
-
* @example
|
|
114
|
-
* // ISO 8601 standard (Monday start, first week minimum 4 days)
|
|
115
|
-
* new DateOnly(2025, 1, 6).getWeekSeqOfYear(); // { year: 2025, weekSeq: 2 }
|
|
116
|
-
*
|
|
117
|
-
* // US style (Sunday start, first week minimum 1 day)
|
|
118
|
-
* new DateOnly(2025, 1, 1).getWeekSeqOfYear(0, 1); // { year: 2025, weekSeq: 1 }
|
|
119
|
-
*/
|
|
120
|
-
getWeekSeqOfYear(weekStartDay = 1, minDaysInFirstWeek = 4) {
|
|
121
|
-
const base = this.getBaseYearMonthSeqForWeekSeq(weekStartDay, minDaysInFirstWeek);
|
|
122
|
-
const firstWeekStart = new DateOnly(base.year, 1, 1).getWeekSeqStartDate(
|
|
123
|
-
weekStartDay,
|
|
124
|
-
minDaysInFirstWeek
|
|
125
|
-
);
|
|
126
|
-
const diffDays = (this.tick - firstWeekStart.tick) / DateOnly.MS_PER_DAY;
|
|
127
|
-
return {
|
|
128
|
-
year: base.year,
|
|
129
|
-
weekSeq: Math.floor(diffDays / 7) + 1
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Return year, month and week sequence information for the given date
|
|
134
|
-
* @param weekStartDay Week start day (0=Sunday, 1=Monday, ..., 6=Saturday). Default: 1(Monday)
|
|
135
|
-
* @param minDaysInFirstWeek Minimum days to be considered the first week (1~7). Default: 4 (ISO 8601 standard)
|
|
136
|
-
* @returns Year, month and week number within that month
|
|
137
|
-
*
|
|
138
|
-
* @example
|
|
139
|
-
* // ISO 8601 standard (Monday start, first week minimum 4 days)
|
|
140
|
-
* new DateOnly(2025, 1, 15).getWeekSeqOfMonth(); // { year: 2025, monthSeq: 1, weekSeq: 3 }
|
|
141
|
-
*
|
|
142
|
-
* // US style (Sunday start, first week minimum 1 day)
|
|
143
|
-
* new DateOnly(2025, 1, 15).getWeekSeqOfMonth(0, 1); // { year: 2025, monthSeq: 1, weekSeq: 3 }
|
|
144
|
-
*/
|
|
145
|
-
getWeekSeqOfMonth(weekStartDay = 1, minDaysInFirstWeek = 4) {
|
|
146
|
-
const base = this.getBaseYearMonthSeqForWeekSeq(weekStartDay, minDaysInFirstWeek);
|
|
147
|
-
const firstWeekStart = new DateOnly(base.year, base.monthSeq, 1).getWeekSeqStartDate(
|
|
148
|
-
weekStartDay,
|
|
149
|
-
minDaysInFirstWeek
|
|
150
|
-
);
|
|
151
|
-
const diffDays = (this.tick - firstWeekStart.tick) / DateOnly.MS_PER_DAY;
|
|
152
|
-
return {
|
|
153
|
-
year: base.year,
|
|
154
|
-
monthSeq: base.monthSeq,
|
|
155
|
-
weekSeq: Math.floor(diffDays / 7) + 1
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Get the start date of a week based on week information
|
|
160
|
-
* @param arg Year, optional month, and week number
|
|
161
|
-
* @param weekStartDay Week start day (0=Sunday, 1=Monday, ..., 6=Saturday). Default: 1(Monday)
|
|
162
|
-
* @param minDaysInFirstWeek Minimum days to be considered the first week (1~7). Default: 4 (ISO 8601 standard)
|
|
163
|
-
* @returns Start date of the specified week
|
|
164
|
-
*
|
|
165
|
-
* @example
|
|
166
|
-
* // Start date of week 2 in 2025 (ISO 8601 standard)
|
|
167
|
-
* DateOnly.getDateByYearWeekSeq({ year: 2025, weekSeq: 2 }); // 2025-01-06 (Monday)
|
|
168
|
-
*
|
|
169
|
-
* // Start date of week 3 in January 2025
|
|
170
|
-
* DateOnly.getDateByYearWeekSeq({ year: 2025, month: 1, weekSeq: 3 }); // 2025-01-13 (Monday)
|
|
171
|
-
*/
|
|
172
|
-
static getDateByYearWeekSeq(arg, weekStartDay = 1, minDaysInFirstWeek = 4) {
|
|
173
|
-
return new DateOnly(arg.year, arg.month ?? 1, (arg.weekSeq - 1) * 7 + 1).getWeekSeqStartDate(
|
|
174
|
-
weekStartDay,
|
|
175
|
-
minDaysInFirstWeek
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
|
-
//#endregion
|
|
179
|
-
//#region Getters (read-only)
|
|
180
|
-
/** Whether the date is set correctly */
|
|
181
|
-
get isValid() {
|
|
182
|
-
return this.date instanceof Date && !Number.isNaN(this.date.getTime());
|
|
183
|
-
}
|
|
184
|
-
get year() {
|
|
185
|
-
return this.date.getFullYear();
|
|
186
|
-
}
|
|
187
|
-
get month() {
|
|
188
|
-
return this.date.getMonth() + 1;
|
|
189
|
-
}
|
|
190
|
-
get day() {
|
|
191
|
-
return this.date.getDate();
|
|
192
|
-
}
|
|
193
|
-
get tick() {
|
|
194
|
-
return this.date.getTime();
|
|
195
|
-
}
|
|
196
|
-
/** Day of week (Sunday~Saturday: 0~6) */
|
|
197
|
-
get dayOfWeek() {
|
|
198
|
-
return this.date.getDay();
|
|
199
|
-
}
|
|
200
|
-
//#endregion
|
|
201
|
-
//#region Immutable transformation methods (returns new instance)
|
|
202
|
-
/** Return new instance with specified year */
|
|
203
|
-
setYear(year) {
|
|
204
|
-
return new DateOnly(year, this.month, this.day);
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Return new DateOnly instance with specified month
|
|
208
|
-
* @param month Month to set (1-12, out-of-range values are adjusted in year)
|
|
209
|
-
* @note If current day is greater than target month's day count, it will be adjusted to last day of month
|
|
210
|
-
* (e.g., setMonth(2) on Jan 31 → Feb 28 or 29)
|
|
211
|
-
*/
|
|
212
|
-
setMonth(month) {
|
|
213
|
-
const normalized = normalizeMonth(this.year, month, this.day);
|
|
214
|
-
return new DateOnly(normalized.year, normalized.month, normalized.day);
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Return new DateOnly instance with specified day
|
|
218
|
-
* @param day Day to set
|
|
219
|
-
* @note Days outside valid month range are automatically adjusted to next/previous month per JavaScript Date behavior
|
|
220
|
-
* (e.g., day=32 in January → February 1)
|
|
221
|
-
*/
|
|
222
|
-
setDay(day) {
|
|
223
|
-
return new DateOnly(this.year, this.month, day);
|
|
224
|
-
}
|
|
225
|
-
//#endregion
|
|
226
|
-
//#region Arithmetic methods (returns new instance)
|
|
227
|
-
/** Return new instance with specified years added */
|
|
228
|
-
addYears(years) {
|
|
229
|
-
return this.setYear(this.year + years);
|
|
230
|
-
}
|
|
231
|
-
/** Return new instance with specified months added */
|
|
232
|
-
addMonths(months) {
|
|
233
|
-
return this.setMonth(this.month + months);
|
|
234
|
-
}
|
|
235
|
-
/** Return new instance with specified days added */
|
|
236
|
-
addDays(days) {
|
|
237
|
-
return new DateOnly(this.tick + days * DateOnly.MS_PER_DAY);
|
|
238
|
-
}
|
|
239
|
-
//#endregion
|
|
240
|
-
//#region Formatting
|
|
241
|
-
/**
|
|
242
|
-
* Convert to string with specified format
|
|
243
|
-
* @param format Format string
|
|
244
|
-
* @see dtFormat for supported format strings
|
|
245
|
-
*/
|
|
246
|
-
toFormatString(formatStr) {
|
|
247
|
-
return format(formatStr, {
|
|
248
|
-
year: this.year,
|
|
249
|
-
month: this.month,
|
|
250
|
-
day: this.day
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
toString() {
|
|
254
|
-
return this.toFormatString("yyyy-MM-dd");
|
|
255
|
-
}
|
|
256
|
-
//#endregion
|
|
257
271
|
}
|
|
258
|
-
|
|
259
|
-
DateOnly
|
|
260
|
-
};
|
|
261
|
-
//# sourceMappingURL=date-only.js.map
|
|
272
|
+
//# sourceMappingURL=date-only.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/types/date-only.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"date-only.js","sourceRoot":"","sources":["../../src/types/date-only.ts"],"names":[],"mappings":"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"}
|