일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Ethereum
- 블록체인개발
- 솔리디티
- 비트코인
- 공개키
- DAPP
- 개인키
- node js
- solidity
- smart contract
- 암호화폐
- 마스터링 비트코인
- 이더리움
- Redis
- 레디스
- 파이썬
- 주소
- 개발
- 스마트컨트랙트
- 마스터링비트코인
- 문자열
- 블록체인
- 백서
- pythonic
- 마스터링 이더리움
- javascript
- js
- keras
- 알고리즘
- python
- Today
- Total
개발이야기
[ Javascript ] 다음날, 이전달을 가져오는 함수 구현 본문
이번 포스팅에서는 Date 객체를 사용하여 다음날, 이전달을 가져오는 함수를 구현해보도록 하겠습니다.
특히 '20191210' 같은 형식의 입력값이 주어진 경우 '20191210'의 다음날인 '20191211'과 이전달인 '20191110'을 반환하는 함수를 구현해보겠습니다.
1. nextDay
먼저 입력받은 값의 다음날을 가져오는 함수 nextDay를 구현해보겠습니다.
// date 포맷을 만들어주는 함수 , ex) 20191210
function getDateStr(myDate){
let month = myDate.getMonth() + 1
let day = myDate.getDate()
if (month < 10) month = '0' + month
if (day < 10) day = '0' + day
return (myDate.getFullYear() + '' + month + '' + day) // '20191211'
}
// 다음날을 구하는 함수
function nextDay(today) {
today = today.slice(0,4) + '-' + today.slice(4,6) + '-' + today.slice(6,) // ex) 2019-12-10
let d = new Date(today) // 2019-12-10T00:00:00.000Z
d.setDate(d.getDate() + 1)
return getDateStr(d)
}
Date를 새로 선언할때 '20191210' 같은 형식의 값을 인자값으로 넘겨주면 에러가 발생하게 됩니다. 따라서 '20191210'을 '2019-12-10' 형식으로 바꿔준 후 인자값으로 넘겨주어야 합니다. 그리고 날짜를 하루 증가시켜준 후 getDateStr 함수로 넘겨주면 됩니다.
getDateStr함수는 원하는 형식으로 Date 객체를 포맷팅해주는 함수입니다.
2. lastMonth
입력받은 값의 이전달을 가져오는 함수 lastMonth를 구현해보겠습니다.
// 이전달을 구하는 함수
function lastMonth(today, diff_month) {
today = today.slice(0,4) + '-' + today.slice(4,6) + '-' + today.slice(6,) // ex) 2019-12-10
let d = new Date(today)
d.setMonth(d.getMonth() - diff_month)
return getDateStr(d)
}
함수의 파라미터인 diff_month의 값을 1로 넘겨주면 이전달을 구할 수 있습니다. nextDay와 비슷하지만 getDate가 아닌 getMonth 값의 변화를 준다는 것이 다릅니다.
위의 예제를 사용하여 원하는 날짜를 Date 객체와 내장함수를 통해 구하실 수 있습니다.
참고
[1] https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date
[2] https://codeday.me/ko/qa/20190324/144974.html