마일
20
2022-05-14 17:54:18
0
68

달력 날짜 질문


안녕하세요! 이번에 예약기능을 구현해보고 싶어서 달력을 만드는데 

https://hyunipad.tistory.com/78

이 블로그를 참고해서 공부하고 있는데요



let CDate = new Date(); 
let today = new Date();
let selectCk = 0;

let buildcalendar = function(){
	let htmlDates = ''; 
	let prevLast = new Date(CDate.getFullYear(), CDate.getMonth(), 0); //지난 달의 마지막 날 
//마지막날은 0으로 초기화
//첫째날은 1로 초기화
	let thisFirst = new Date(CDate.getFullYear(), CDate.getMonth(), 1); //이번 달의 첫째날
 
//이번 달의 마지막 날
	let thisLast = new Date(CDate.getFullYear(), CDate.getMonth() + 1, 0);

//<span class="year"></span> innerHTML을 사용해서 년도를 넣어줌
	document.querySelector(".year").innerHTML = CDate.getFullYear() + "년";  // year에 년도 출력
	document.querySelector(".month").innerHTML = (CDate.getMonth() + 1) + "월";  //month에 월 출력
//dates는 배열로 초기화	
const dates = [];

 
	if(thisFirst.getDay()!=0){  //이번달의 첫째날이 일요일이 아니라면
		for(let i = 0; i < thisFirst.getDay(); i++){ //일~월~화~수~목~금~토~//
			dates.unshift(prevLast.getDate()-i); // 지난 달 날짜 채우기
		} 
	} 
	for(let i = 1; i <= thisLast.getDate(); i++){ //1일부터 마지막 날까지 채워줌
			 dates.push(i); // 이번 달 날짜 채우기 
	} 
	for(let i = 1; i <= 13 - thisLast.getDay(); i++){  //1일부터 13-달의 마지막 날 요일??
			 dates.push(i); 
	} 

본문에는

for(var i = 1; i <= 13 - thisLast.getDay(); i++){
dates.push(i); // 다음 달 날짜 채우기 (나머지 다 채운 다음 출력할 때 42개만 출력함)
}

이렇게 나와있는데

이 부분에서 왜 13에서 요일을 빼주는지 잘 이해가 가지 않아서 여기에도 한번 글 남겨봅니다.

아시는 분이 있을까요?


댓글 남겨주시면 정말 감사하겠습니다.


0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.