코딩 연습장/Javascript

javaScript 일주일의 시작 일과 끝일 출력하기

Do아 2022. 3. 10. 20:31
728x90

2022-03-10(목)

 

 

 

 

 

 

 

회사에서 프로젝트 중에 간단한 함수 생성해야해서 만들어봤다!

우선 일주일의 기준은 월요일부터 일요일이다 

 

함수에 날짜를 매개변수로 넘겨주면 해당 날짜가 속한 일주일의 시작날짜(월요일)와 끝날짜(일요일)를 출력하는 함수다

 

회사에서 주단위로 데이터를 출력하는 차트를 생성해야해서 구글링을 하며 만들었다

 

혹시 찾는 누군가에게 도움이 됐으면 좋겠다

 

 

 

 

 

 

 

 

<날짜 받아서 일주일의 시작 출력하는 함수>

/**
* 매개변수 date : new Date()의 형식으로 전달
* 출력 : yyyy-mm-dd 형식으로 출력
*/
function getWeekStartDate(date){
  let today = new Date(date.setHours(0,0,0,0));
  let day = today.getDay();
  let startDate
  let resultDate

  if(day === 0)
    day = 6
  else
  	day -= 1

  resultDate = today.getDate() - day;
  startDate = new Date(today.setDate(resultDate))

  return startDate.toLocaleDateString()
}

 

굉장히 간단하다 

우선 받아오는 값의 시간을 0:0:0:0으로 맞추주고 

매개변수 날짜에 요일의 날을 저장한다

만약 day값이 0이면 일요일이라는 소리가 되니 6을 넣어준다

다른 요일이면 그냥 day-1를 사용하면 된다

 

입력받은 날짜에 요일수를 빼주고 new Date형식으로 넣어주면 된다

2022-03-10을 매개변수로 줬을 때 2022. 3. 7 의 값을 받을 수 있다

 

 

 

 

 

 

<날짜를 받아서 일주일의 끝날짜를 출력하는 함수>

 

function getWeekEndDate(date){
  let today = new Date(date.setHours(0,0,0,0));
  let day = today.getDay();
  let resultDate
  let endDate

  if(day === 0)
    day = 6

  resultDate = today.getDate() - day;
  endDate = new Date(today.setDate(resultDate + 7 ))

  if(date < 0)
  	endDate.setMonth(endDate.getMonth() + 1);

  return endDate.toLocaleDateString()
}

시작 날짜를 출력하는 함수와 유사하다 

다만 다른 점은 만약 2022-02-28~2022-03-06의 주라면 

2월의 날짜가 시작 날짜기 때문에 한달을 더해줘야한다

 

그래서 2022-03-01을 입력하면 2022-03-06일이 나오는 것을 알 수 있다

 

 

 

 

 

 

 

오늘도 아잣!

728x90