본문 바로가기
언어/Javascript, Typescript

[js] 무작위 날짜 생성하기, 무작위 숫자 생성하기

by minhyeok.lee 2023. 2. 21.
반응형

[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월)이다. 

반응형

댓글