export const parserInputValueDate = ( value: string // eslint-disable-next-line consistent-return ): void | { start: Date; end: Date } => { const ddStart = value.slice(0, 2); const mmStart = value.slice(3, 5); const yyStart = value.slice(6, 10); const ddEnd = value.slice(13, 15); const mmEnd = value.slice(16, 18); const yyEnd = value.slice(19, 23); if ( ddStart !== '' && ddStart !== '00' && !ddStart.includes('_') && mmStart !== '' && mmStart !== '00' && Number(mmStart) <= 12 && !mmStart.includes('_') && yyStart !== '' && yyStart !== '0000' && Number(yyStart) >= 2000 && !yyStart.includes('_') && ddEnd !== '' && ddEnd !== '00' && !ddEnd.includes('_') && mmEnd !== '' && mmEnd !== '00' && Number(mmEnd) <= 12 && !mmEnd.includes('_') && yyEnd !== '' && yyEnd !== '0000' && Number(yyEnd) >= 2000 && !yyEnd.includes('_') ) { return { start: new Date(`${mmStart}/${ddStart}/${yyStart}`), end: new Date(`${mmEnd}/${ddEnd}/${yyEnd}`) }; } }; export const autoInputDate = (prevdate: string, newDate: string) => { const ddStartPrev = prevdate.slice(0, 2); const mmStartPrev = prevdate.slice(3, 5); const yyStartPrev = prevdate.slice(6, 10); const ddEndPrev = prevdate.slice(13, 15); const mmEndPrev = prevdate.slice(16, 18); const yyEndPrev = prevdate.slice(19, 23); let ddStartNew = newDate.slice(0, 2); let mmStartNew = newDate.slice(3, 5); let yyStartNew = newDate.slice(6, 10); let ddEndNew = newDate.slice(13, 15); let mmEndNew = newDate.slice(16, 18); let yyEndNew = newDate.slice(19, 23); if (newDate !== '__/__/____ - __/__/____' && newDate !== '') { if (ddStartNew === ddStartPrev && ddStartNew !== '__') { if (ddStartNew.includes('_')) { if (ddStartNew === '_0' || ddStartNew === '0_') { ddStartNew = '01'; } else { const oneNumber = ddStartNew.split('_'); ddStartNew = oneNumber[0] ? `0${oneNumber[0]}` : `0${oneNumber[1]}`; } } } if (mmStartNew === mmStartPrev && mmStartNew !== '__') { if (mmStartNew.includes('_')) { if (mmStartNew === '_0' || mmStartNew === '0_') { mmStartNew = '01'; } else { const oneNumber = mmStartNew.split('_'); mmStartNew = oneNumber[0] ? `0${oneNumber[0]}` : `0${oneNumber[1]}`; } } } if (yyStartNew === yyStartPrev && yyStartNew !== '____' && yyStartNew.includes('_')) { const numberArray = yyStartNew.split('_'); yyStartNew = String(2000 + Number(numberArray.find(item => item !== ''))); } if (ddEndNew === ddEndPrev && ddEndNew !== '__') { if (ddEndNew.includes('_')) { if (ddEndNew === '_0' || ddEndNew === '0_') { ddEndNew = '01'; } else { const oneNumber = ddEndNew.split('_'); ddEndNew = oneNumber[0] ? `0${oneNumber[0]}` : `0${oneNumber[1]}`; } } } if (mmEndNew === mmEndPrev && mmEndNew !== '__') { if (mmEndNew.includes('_')) { if (mmEndNew === '_0' || mmEndNew === '0_') { mmEndNew = '01'; } else { const oneNumber = mmEndNew.split('_'); mmEndNew = oneNumber[0] ? `0${oneNumber[0]}` : `0${oneNumber[1]}`; } } } if (yyEndNew === yyEndPrev && yyEndNew !== '____' && yyStartNew.includes('_')) { const numberArray = yyEndNew.split('_'); yyEndNew = String(2000 + Number(numberArray.find(item => item !== ''))); } if (Number(ddStartNew) > 31) { ddStartNew = '31'; } else if (ddStartNew === '00') { ddStartNew = '01'; } if (Number(mmStartNew) > 12) { mmStartNew = '12'; } else if (mmStartNew === '00') { mmStartNew = '01'; } if (Number(ddEndNew) > 31) { ddEndNew = '31'; } else if (ddEndNew === '00') { ddEndNew = '01'; } if (Number(mmEndNew) > 12) { mmEndNew = '12'; } else if (mmEndNew === '00') { mmEndNew = '01'; } if (Number(yyStartNew) < 2000) { yyStartNew = '2000'; } else if (yyStartNew === '0000') { yyStartNew = '2000'; } if (Number(yyEndNew) < 2000) { yyEndNew = '2000'; } else if (yyEndNew === '0000') { yyEndNew = '2000'; } } if ( `${ddStartNew}/${mmStartNew}/${yyStartNew} - ${ddEndNew}/${mmEndNew}/${yyEndNew}` === '// - //' ) { return ''; } return `${ddStartNew}/${mmStartNew}/${yyStartNew} - ${ddEndNew}/${mmEndNew}/${yyEndNew}`; };