@@ -3,16 +3,6 @@ import type { CustomFormat, InternalMode, Locale, NullableDateType } from '../in
33
44export const WEEK_DAY_COUNT = 7 ;
55
6- // export function isNullEqual<T>(value1: T, value2: T): boolean | undefined {
7- // if (!value1 && !value2) {
8- // return true;
9- // }
10- // if (!value1 || !value2) {
11- // return false;
12- // }
13- // return undefined;
14- // }
15-
166/**
177 * Wrap the compare logic.
188 * This will compare the each of value is empty first.
@@ -79,16 +69,6 @@ export function isSameMonth<DateType>(
7969 month1 : NullableDateType < DateType > ,
8070 month2 : NullableDateType < DateType > ,
8171) {
82- // const equal = isNullEqual(month1, month2);
83- // if (typeof equal === 'boolean') {
84- // return equal;
85- // }
86-
87- // return (
88- // isSameYear(generateConfig, month1, month2) &&
89- // generateConfig.getMonth(month1!) === generateConfig.getMonth(month2!)
90- // );
91-
9272 return nullableCompare (
9373 month1 ,
9474 month2 ,
@@ -103,17 +83,6 @@ export function isSameDate<DateType>(
10383 date1 : NullableDateType < DateType > ,
10484 date2 : NullableDateType < DateType > ,
10585) {
106- // const equal = isNullEqual(date1, date2);
107- // if (typeof equal === 'boolean') {
108- // return equal;
109- // }
110-
111- // return (
112- // generateConfig.getYear(date1!) === generateConfig.getYear(date2!) &&
113- // generateConfig.getMonth(date1!) === generateConfig.getMonth(date2!) &&
114- // generateConfig.getDate(date1!) === generateConfig.getDate(date2!)
115- // );
116-
11786 return nullableCompare (
11887 date1 ,
11988 date2 ,
@@ -129,17 +98,6 @@ export function isSameTime<DateType>(
12998 time1 : NullableDateType < DateType > ,
13099 time2 : NullableDateType < DateType > ,
131100) {
132- // const equal = isNullEqual(time1, time2);
133- // if (typeof equal === 'boolean') {
134- // return equal;
135- // }
136-
137- // return (
138- // generateConfig.getHour(time1!) === generateConfig.getHour(time2!) &&
139- // generateConfig.getMinute(time1!) === generateConfig.getMinute(time2!) &&
140- // generateConfig.getSecond(time1!) === generateConfig.getSecond(time2!)
141- // );
142-
143101 return nullableCompare (
144102 time1 ,
145103 time2 ,
@@ -158,15 +116,6 @@ export function isSameTimestamp<DateType>(
158116 time1 : NullableDateType < DateType > ,
159117 time2 : NullableDateType < DateType > ,
160118) {
161- // return (
162- // // Same object
163- // time1 === time2 ||
164- // // Date
165- // (isSameDate(generateConfig, time1, time2) &&
166- // isSameTime(generateConfig, time1, time2) &&
167- // generateConfig.getMillisecond(time1) === generateConfig.getMillisecond(time2))
168- // );
169-
170119 return nullableCompare (
171120 time1 ,
172121 time2 ,
@@ -183,18 +132,6 @@ export function isSameWeek<DateType>(
183132 date1 : NullableDateType < DateType > ,
184133 date2 : NullableDateType < DateType > ,
185134) {
186- // const equal = isNullEqual(date1, date2);
187- // if (typeof equal === 'boolean') {
188- // return equal;
189- // }
190-
191- // const weekStartDate1 = getWeekStartDate(locale, generateConfig, date1);
192- // const weekStartDate2 = getWeekStartDate(locale, generateConfig, date2);
193-
194- // return (
195- // isSameYear(generateConfig, weekStartDate1, weekStartDate2) &&
196- // generateConfig.locale.getWeek(locale, date1) === generateConfig.locale.getWeek(locale, date2)
197- // );
198135 return nullableCompare ( date1 , date2 , ( ) => {
199136 const weekStartDate1 = getWeekStartDate ( locale , generateConfig , date1 ) ;
200137 const weekStartDate2 = getWeekStartDate ( locale , generateConfig , date2 ) ;
@@ -300,3 +237,27 @@ export function formatValue<DateType>(
300237 ? format ( value )
301238 : generateConfig . locale . format ( locale . locale , value , format ) ;
302239}
240+
241+ /**
242+ * Fill the time info into Date if provided.
243+ */
244+ export function fillTime < DateType > (
245+ generateConfig : GenerateConfig < DateType > ,
246+ date : DateType ,
247+ time ?: DateType ,
248+ ) {
249+ let tmpDate = date ;
250+
251+ const getFn = [ 'getHour' , 'getMinute' , 'getSecond' , 'getMillisecond' ] as const ;
252+ const setFn = [ 'setHour' , 'setMinute' , 'setSecond' , 'setMillisecond' ] as const ;
253+
254+ setFn . forEach ( ( fn , index ) => {
255+ if ( time ) {
256+ tmpDate = generateConfig [ fn ] ( tmpDate , generateConfig [ getFn [ index ] ] ( time ) ) ;
257+ } else {
258+ tmpDate = generateConfig [ fn ] ( tmpDate , 0 ) ;
259+ }
260+ } ) ;
261+
262+ return tmpDate ;
263+ }
0 commit comments