Programming/nexacro
넥사크로 캘린더 일자 연산, 더하기
감성적인 개발자
2022. 7. 7. 22:31
캘린더에있는 날짜를 더하기 위한 코드
//Date 오브젝트 생성
var nYearDt = this.Dataset00.getColumn(0, "날짜컬럼").substr(0, 4);
var nMonthDt = this.Dataset00.getColumn(0, "날짜컬럼").substr(4, 2);
var nDayDt = this.Dataset00.getColumn(0, "날짜컬럼").substr(6, 2);
var objDate = new Date(nYearDt, nMonthDt - 1, nDayDt); //생성 시 월은 -1
var nDayDtCal = parseInt(nDayDt) + 1; //연산
objDate.setDate(nDayDtCal);
var sYearDt = objDate.getYear();
var sMonthDt = objDate.getMonth() + 1; //-1 한 값을 되돌린다.
var sDayDt = objDate.getDate();
this.Dataset00.setColumn(0, "날짜컬럼", sYearDt.toString() + sMonthDt.toString().padLeft(2, "0") + sDayDt.toString().padLeft(2, "0"));
1. 데이터셋에서 년월일('20220707')을 가진 컬럼을 각각 년, 월, 일로 나누어 변수에 저장한다.
var nYearDt = this.Dataset00.getColumn(0, "날짜컬럼").substr(0, 4); //연
var nMonthDt = this.Dataset00.getColumn(0, "날짜컬럼").substr(4, 2); //월
var nDayDt = this.Dataset00.getColumn(0, "날짜컬럼").substr(6, 2); //일
2. Date객체를 생성해 추출 한 값으로 초기화. (Date객체는 월을 0~11로 받기 때문에 컬럼 값 - 1을 전달)
var objDate = new Date(nYearDt, nMonthDt - 1, nDayDt);
3. 원하는 일수를 더해준 뒤 setDate 인자로 전달한다. setDate 함수는 연/월/일 중 일자가 들어가며 초과/미달 된만큼 자동으로 연/월이 연산된다.
var nDayDtCal = parseInt(nDayDt) + 1; //연산
objDate.setDate(nDayDtCal);
4. Date객체로부터 연/월/일 을각각 변수로 받은 뒤 값들을 스트링으로 변환해 합친다. 이 때 월,일은 padLeft를 통해 한 자리 수를 두 자리로 변환시켜준다.
var sYearDt = objDate.getYear();
var sMonthDt = objDate.getMonth() + 1; //-1 한 값을 되돌린다.
var sDayDt = objDate.getDate();
this.Dataset00.setColumn(0, "날짜컬럼", sYearDt.toString() + sMonthDt.toString().padLeft(2, "0") + sDayDt.toString().padLeft(2, "0"));