도담도담

특정 날짜,기간 찾기 (주간, 월간, 연간) 본문

IT 공부/개인정리

특정 날짜,기간 찾기 (주간, 월간, 연간)

Zinisang 2022. 6. 25. 19:44

데이터 가공을 하다가 날짜관련해서 정비를 하게 됬었는데,

특정기간을 찾는게 은근 시간을 꽤 소비하는 작업이였다.

그래서 특정 기간을 찾을때 사용했던 기본 로직을 좀 정리해보았다.

 


1. 지난주, 저번주

var today = new Date();

var year = today.getFullYear();
var month = today.getMonth();
var day = today.getDate();

//-----------기본 날짜 형식 구성-----------

var last_week = new Date(year, month, day - 7);
var week = moment(last_week).format('YYYYMMDD').toString();

week;

//-----------지난주 날짜 설정-----------

 

2. 지난달, 저번달

var today = new Date();

var year = today.getFullYear();
var month = today.getMonth();
var day = today.getDate();

//-----------기본 날짜 형식 구성-----------

if(지난달에대한요청){
    var last_month = new Date(year, month - 1, 1);
    var month = moment(last_month).format('YYYYMMDD').toString();
}else if(이번달에대한요청){
    var this_month = new Date(year, month, 1);
    var month = moment(this_month).format('YYYYMMDD').toString();
}

month;

//-----------지난달 날짜 설정-----------

 

3. 특정년도 

var today = new Date();

var year = today.getFullYear();
var month = today.getMonth();
var day = today.getDate();

//-----------기본 날짜 형식 구성-----------

var check_year = 찾고자하는 해당연도

if(check_year < year){
    var that_year = new Date(check_year, 0, 1);
} else {
    var that_year = new Date(year,0,1);
}

year = moment(yeat_year).format('YYYYMMDD').toString();

year;

//-----------특정 년도 설정-----------
// 찾고자하는 연도가 미래일 경우는 아직 생성된 데이터가 없기떄문에 올해로 설정

 

4. 특정기간의 시작날짜와 마지막날짜

// 상단의 케이스들에서 정리된 데이터를 사용

//시작날짜설정

if(week){
    week;
} else if (month){
    month;
} else {
    var today = moment(_.now()).format('YYYYDDMM').toString();
    var year = parseInt(today.substring(0, 4));
    var month = parseInt(today.substring(4, 6));
    var date = parseInt(today.substring(6, 8));
    
    var setDate = new Date(yeat - 1, month - 1, date + 1);
    var startDate = moment(setDate).format('YYYYDDMM').toString();
    startDate;
}


//마지막날짜설정
if(month){
    var year = parseInt(today.substring(0, 4));
    var month = parseInt(today.substring(4, 6));
    var lastDate = new Date(year, month, 0).getDate();
    
    var setDate = new Date(year, month - 1, lastDate);
    var endDate = moment(setDate).format('YYYYDDMM').toString();
    endDate;
} else {
    let endDate = moment(_.now()).format('YYYYDDMM').toString();
    endDate;
}

 

 


* 원하는 방식에 따라서 확인 및 참고용 추가 *

// 특정 날짜 정하기
new Date(2020, 0, 1).toLocaleDateString();

// 어제 날짜 구하기
new Date(year, month, day - 1).toLocaleDateString();

// 일주일 전 구하기
new Date(year, month, day - 7).toLocaleDateString();

// 한달 전 구하기
new Date(year, month - 1, day).toLocaleDateString();

// 일년 전 구하기
new Date(year - 1, month, day).toLocaleDateString();

// 15일
new Date().setDate(15);  

// 14일
const month = 15;
new Date().setDate(day - 1); 

// 2월
const month = 3;
new Date().setMonth(month - 1); 

// 2021년
const year = 2022;
new Date().setYear(year - 1);

'IT 공부 > 개인정리' 카테고리의 다른 글

[우분투] mariaDB 포트확인  (0) 2022.11.07
리눅스 우분투(Ubuntu) 설치  (0) 2022.11.04
trim() (빈공간제거)  (0) 2022.06.20
배열 가공 및 배열 합치기  (0) 2022.06.13
3항연산자 (if문 대신 빠르게 사용)  (0) 2022.06.07
Comments