# 함수 설명: getRelativeYearDate

이 함수는 현재 날짜를 기준으로 파라미터로 주어진 상대적인 해(Year)의 상대적인 날짜(Date)의 시작 시간을 제공합니다.

## 함수 시그니처

```typescript
function getRelativeYearDate(params: RelativeYearDateParams = {}): string | number | Date
```

## 매개변수

이 함수는 `RelativeYearDateParams`라는 이름의 타입의 매개변수 객체를 받습니다. 이 객체의 필드에 대한 상세한 정보는 다음과 같습니다:

- `relativeYears?: number`: 상대적인 연도를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 연도 수를 나타냅니다. 예를 들어, 이 값이 3이면 현재 날짜로부터 3년 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 연도를 의미합니다.

- `relativeDays?: number`: 상대적인 일수를 나타내는 숫자입니다. 이 값은 현재 날짜로부터의 일 수를 나타냅니다. 예를 들어, 이 값이 2이면 현재 날짜로부터 2일 뒤를 나타냅니다. 이 값이 주어지지 않으면 기본값은 0입니다, 즉 현재 날짜를 의미합니다.

- `timeZone?: string`: 날짜를 얻고자 하는 시간대를 나타내는 문자열입니다. 이 값이 주어지지 않으면 사용자의 로컬 시간대가 사용됩니다.

- `format?: 'timestamp' | 'date' | Intl.DateTimeFormatOptions`: 반환하려는 날짜의 형식을 결정합니다. 이 값은 다음 세 가지 중 하나일 수 있습니다:
  - `'timestamp'`: 반환 값이 UNIX 타임스탬프 (1970년 1월 1일 00:00:00 UTC로부터의 밀리초)가 됩니다.
  - `'date'`: 반환 값이 Date 객체가 됩니다.
  - `Intl.DateTimeFormatOptions`: 반환 값이 이 옵션에 따라 포맷된 문자열이 됩니다. 이 값이 제공되지 않으면 기본적으로 Date 객체가 반환됩니다.

## 반환 값

이 함수는 `string | number | Date` 형식의 값을 반환합니다. 반환 값의 형식은 `format` 매개변수에 따라 결정됩니다.

## 예제

```typescript
/* get Date() object */
const relativeYearDate = getRelativeYearDate({
  relativeYears: 2,
  relativeDays: 3,
  timeZone: 'Asia/Seoul',
  loclae: 'en-CA',
  format: 'date'
})

console.log(relativeYearDate)
```

```typescript
/* text format style */
const relativeYearDate = getRelativeYearDate({
  relativeYears: 2,
  relativeDays: 3,
  timeZone: 'Asia/Seoul',
  format: 'YYYY-MM-DD'
})

console.log(relativeYearDate)
```

```typescript
/* Intl.DateTimeFormat style */
const relativeYearDate = getRelativeYearDate({
  relativeYears: 2,
  relativeDays: 3,
  timeZone: 'Asia/Seoul',
  loclae: 'en-CA' /* YYYY-MM-DD format */,
  format: {
    year: 'numeric',
    month: '2-digit',
    day: '2-digit'
  }
})

console.log(relativeYearDate)
```

이 코드는 현재 시간으로부터 2년 후와 3일 후의 날짜를 `'Asia/Seoul'` 시간대에서의 Date 객체로 반환합니다.
