데이터불러오기기

This commit is contained in:
2025-10-15 10:31:03 +00:00
parent ddb70018b9
commit 0ab4b037eb
5 changed files with 202 additions and 4 deletions

View File

@@ -148,6 +148,16 @@ function formatKoreanDateFromYMD(ymd) {
return `${yyyy}. ${mm}. ${dd}.`;
}
// '2025. 9. 1.' → '20250901' 로 변환
function dotKoreanDateToYMD(dot) {
const m = dot?.match(/^(\d{4})\.\s*(\d{1,2})\.\s*(\d{1,2})\.?$/);
if (!m) return null;
const yyyy = m[1];
const mm = String(parseInt(m[2], 10)).padStart(2, '0');
const dd = String(parseInt(m[3], 10)).padStart(2, '0');
return `${yyyy}${mm}${dd}`;
}
// 입력칸의 기존 값을 지우고 새 값 입력
async function clearAndType(inputLocator, page, value) {
await inputLocator.click();
@@ -179,6 +189,13 @@ async function configureDateRangeSingleDay(page, ymdTarget) {
await clearAndType(startInput, page, endVal);
startVal = endVal;
} else if (ymdTarget) {
// 최신 종료일(=현재 UI가 가진 가장 최근 일자)과 비교하여 이후면 에러
const latestEndVal = await endInput.inputValue();
const latestYmd = dotKoreanDateToYMD(latestEndVal);
if (!latestYmd) throw new Error('최신 종료일 파싱에 실패했습니다.');
if (!/^\d{8}$/.test(ymdTarget)) throw new Error('잘못된 날짜 형식입니다. (예: 20250901)');
if (ymdTarget > latestYmd) throw new Error(`요청한 날짜(${ymdTarget})가 최신 데이터(${latestYmd})보다 이후입니다.`);
const formatted = formatKoreanDateFromYMD(ymdTarget);
if (!formatted) throw new Error(`잘못된 날짜 형식입니다. (예: 20250901)`);
// 시작/종료 모두 동일 날짜로 설정