[Javascript] 무작위 날짜 생성하기, 무작위 숫자 생성하기
1. 무작위 숫자 생성함수(범위)
function getRandomNumberRange(min, max) {
if(min === max) return ('equal Number');
return Math.floor(Math.random() * (max - min + 1)) + min;
}
- min이상 max이하인 숫자 생성함수
- min = 1, max = 99일때, 1~99까지 무작위 숫자 반환
- min, max는 숫자(number)여야 하고 다른 값이어야 함
2. 무작위 숫자 생성함수(자리 수 이하)
function getRandomNumberDigit(digit) {
if(digit < 1) return ('parameter is bigger than 0');
let divide = 1;
for(let i = 0; i < digit; i++) divide = divide * 10;
return Math.floor((Math.random() * divide));
}
- digit자리수 이하인 숫자 생성함수
- digit = 1일때, 9이하, digit = 2일때, 99이하, digit = 3일때 999이하 ... 패턴의 무작위 숫자 반환
- digit은 숫자여야 하고 0보다 커야함
3. 무작위 숫자 생성함수(0이상 number이하 or number이상 0이하)
function getRandomNumberUnder(number) {
let min, max;
if(0 > number) {
min = number;
max = 0;
} else if(0 < number){
min = 0;
max = number;
} else {
return ('Zero is cannot be parameter');
}
return getRandomNumberRange(min, max);
}
- number부터 0까지 랜덤 숫자 생성함수
- number = 99면 0이상 99이하 숫자 생성, number = -99라면 -99이상 0이하 숫자 반환
- number는 숫자여야 하고 0이 아니여야 함
4. 무작위 날짜 생성함수(범위)
function getRandomTwoDate(startDate, endDate) {
if(startDate === endDate) return ('equal Date');
const start = startDate.getTime();
const end = endDate.getTime();
return new Date(start + Math.random() * (end - start));
}
- startDate이상 endDate이하인 Date생성함수
- startDate = new Date(2023, 0, 1), endDate = new Date(2023, 11, 1)일 경우
- 출력값: 2023년 1월 1일부터 2023년 12월 31일까지 무작위 날짜가 반환
- startDate는 endDate 다른 날짜여야 함
5. 무작위 날짜 생성함수(오늘날부터 date까지)
function getRandomTodayDate(date) {
const start = new Date().getTime();
const end = date.getTime();
if(end === start) return ('equal Date');
return new Date(start + Math.random() * (end - start));
}
- 오늘부터 date까지 범위로 Date생성함수
- date = new Date(2023, 11, 1)일 경우
- 출력값: 현재 날짜부터 2023년 1월 1일부터 2023년 12월 31일까지 무작위 날짜가 반환
- date는 오늘(new Date(), new Date(Date.now()))이 아니여야 함
예제 4, 5번의 경우 매개변수는 Date타입이고 Date(년, 월, 일)이고 월은 -1 (0 = 1월, ... ,11 = 12월)이다.
'언어 > Javascript, Typescript' 카테고리의 다른 글
[js] 코드 최적화 - 반복문(for-of, for-in), 조건문(if문, switch문) (0) | 2023.03.07 |
---|---|
[js, ts] 함수를 파일로 따로 빼서 정리하는 방법 (0) | 2023.03.05 |
[js] iterable 객체, Array.from (0) | 2023.02.18 |
[js] Spread(전개 구문), apply(), Object.assign() (0) | 2023.02.16 |
[js] Math (절댓값, 반올림, 올림, 내림, 랜덤 등등) (0) | 2023.02.15 |
댓글