Recent Posts
Recent Comments
04-29 03:23
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Today
Total
관리 메뉴

생각을 IT다

윤년을 포함한 입력한 날짜의 요일 계산 본문

jQuery

윤년을 포함한 입력한 날짜의 요일 계산

흑백논리 2023. 1. 25. 17:11
반응형

해당 글은 1년 1월 1일을 기준으로 기준 날짜까지의 총 일수를 계산하고 7일로 나눈 몫으로 요일을 구하는 방식입니다.

let lastDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31); //각 월 별 일수를 정의
   let week = new Array("일","월","화","수","목","금","토"); //일주일을 일요일부터 배열로 정렬
   var year = 2023; //년도 입력
   var month = 2; //월 입력
   var day = 19; //일 입력
   
   //1년 계산
   var days = ((year - 1) * 365) + ((year - 1) / 4) - ((year - 1) / 100) + ((year - 1) / 400); //윤년을 포함한 1년을 계산
   
   //윤년계산 하며 맞춰서 lastday 갱신
   for (var i = 0; i < month - 1; i++) { //개월 수를 점점 증가시킨다
   if ( month == 2 ) {   // 2월일 경우에는
      if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { //윤년임으로 해당 년도는 2월을 28일에서 29일로 변경
         lastDay[1] = 29;
      }
   }
   days += lastDay[i]; //1년 1월 1일부터 입력값까지의 총 일수 계산 => 요일 계산을 위한 값
  }
  //월의 첫 시작 
  var firstDay = 0;
  firstDay = days % 7;  //매달의 첫날은 1년을 7로 나눈 값의 나머지
  firstDay = Math.floor(firstDay); //내림 후 주어진 숫자보다 작거나 같은 가장 큰 정수 반환
  var count = firstDay;
  

  for(var i = 1; i <= lastDay[month - 1]; i++) {
   count++; //카운트를 증가
   if(count >= 7){ //카운트가 7보다 크거나 같다면
      count = 0; //0으로 돌아감
   }
   if(day == i){
      var yoil = week[count]; //week의 정렬에서 카운트의 수에 해당하는 위치에 값을 가져옴
      break;
   }
  }
console.log(yoil)

브라우저의 개발자 모드를 통해서 콘솔창에 입력하고 console을 통해 결과값을 받아볼 수 있습니다.

반응형

'jQuery' 카테고리의 다른 글

jQuery API (1)  (0) 2023.08.31
jQuery 문제풀이  (0) 2023.02.15
jQuery 문제 풀이 (16번~21번)  (0) 2023.01.25
jQuery 문제 풀이 (11번~15번)  (0) 2023.01.25
jQuery 문제 풀이 (6번~10번)  (0) 2023.01.25
Comments