티스토리 뷰
이번주가 몇주차인지 계산해주는 로직.
사용 방법
아래 코드를 추가 하시고 console.log(new Date().getWeek()); 이렇게 하시면 이번주가 몇주차 인지 나옵니다.
파라메터 dowOffset은 Day Of Week의 Offset값으로 .getWeek(3) 이렇게 하면 1주일의 시작이 3일후부터로 시작합니다. 만약 1주일 시작이 수요일부터이고 싶다면 3을 넣으면 되고 목요일부터이고 싶다면 4를 넣으면 됩니다.
Date.prototype.getWeek = function (dowOffset) {
/*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */
dowOffset = typeof(dowOffset) == 'number' ? dowOffset : 0; // dowOffset이 숫자면 넣고 아니면 0
var newYear = new Date(this.getFullYear(),0,1);
var day = newYear.getDay() - dowOffset; //the day of week the year begins on
day = (day >= 0 ? day : day + 7);
var daynum = Math.floor((this.getTime() - newYear.getTime() -
(this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1;
var weeknum;
//if the year starts before the middle of a week
if(day < 4) {
weeknum = Math.floor((daynum+day-1)/7) + 1;
if(weeknum > 52) {
let nYear = new Date(this.getFullYear() + 1,0,1);
let nday = nYear.getDay() - dowOffset;
nday = nday >= 0 ? nday : nday + 7;
/*if the next year starts before the middle of
the week, it is week #1 of that year*/
weeknum = nday < 4 ? 1 : 53;
}
}
else {
weeknum = Math.floor((daynum+day-1)/7);
}
return weeknum;
};
4번라인 dowOffset초기화 하는 부분은 parameter로 넘어온 값이 'number'라면 받은 값으로 초기화 하고 아니면 0으로 초기화 해줍니다.
dowOffset = typeof(dowOffset) == 'number' ? dowOffset : 0; 이 부분은 수정했습니다. 원래는 number대신 int였는데 nodejs버젼이 올라가서 바뀐듯 싶습니다.
refer
https://stackoverflow.com/questions/9045868/javascript-date-getweek
728x90
'Language > Node.js' 카테고리의 다른 글
Vue 단순 바인딩 말고 중급 기술 (1) | 2021.08.01 |
---|---|
nodejs aws-amplify cognito 연동하기 (0) | 2019.05.08 |
카카오 로그인 react에 붙이기 (0) | 2019.04.24 |
express morgan 로깅 (0) | 2019.04.03 |
node express를 aws elastic beanstalk에 띄우기 (0) | 2019.04.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 도커각티슈케이스
- docker container tissue
- Linux
- 도커각티슈박스
- 도커티슈케이스
- 개발자
- 싱가폴
- 이직
- Sh
- 도커티슈박스
- 도커컨테이너
- vim
- shellscript
- 2017 티스토리 결산
- docker container case
- docker container whale
- docker container
- docker container tissue box
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함