[**@uplink-protocol/form-controller v0.3.1**](../README.md)

***

[@uplink-protocol/form-controller](../globals.md) / ICalendarGeneratorService

# Interface: ICalendarGeneratorService

Defined in: [Date/interfaces/calendar-generator.service.interfaces.ts:8](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/calendar-generator.service.interfaces.ts#L8)

Calendar generator service interface
Responsible for generating calendar days based on given options

## Methods

### generateCalendarDays()

> **generateCalendarDays**(`year`, `month`, `options`): [`CalendarDate`](CalendarDate.md)[]

Defined in: [Date/interfaces/calendar-generator.service.interfaces.ts:12](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/calendar-generator.service.interfaces.ts#L12)

Generate calendar days for a specified month/year

#### Parameters

##### year

`number`

##### month

`number`

##### options

[`CalendarGenerationOptions`](CalendarGenerationOptions.md)

#### Returns

[`CalendarDate`](CalendarDate.md)[]

***

### generateCalendarMonths()

> **generateCalendarMonths**(`year`, `options`): [`CalendarMonth`](CalendarMonth.md)[]

Defined in: [Date/interfaces/calendar-generator.service.interfaces.ts:21](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/calendar-generator.service.interfaces.ts#L21)

Generate calendar months for a specified year

#### Parameters

##### year

`number`

##### options

[`MonthViewGenerationOptions`](MonthViewGenerationOptions.md)

#### Returns

[`CalendarMonth`](CalendarMonth.md)[]

***

### generateCalendarYears()

> **generateCalendarYears**(`baseYear`, `rangeSize`, `options`): [`CalendarYear`](CalendarYear.md)[]

Defined in: [Date/interfaces/calendar-generator.service.interfaces.ts:29](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/calendar-generator.service.interfaces.ts#L29)

Generate calendar years for a specified year range

#### Parameters

##### baseYear

`number`

##### rangeSize

`number`

##### options

[`YearViewGenerationOptions`](YearViewGenerationOptions.md)

#### Returns

[`CalendarYear`](CalendarYear.md)[]

***

### generateMonthView()

> **generateMonthView**(`year`, `month`, `options`): `object`

Defined in: [Date/interfaces/calendar-generator.service.interfaces.ts:48](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/calendar-generator.service.interfaces.ts#L48)

Generate a complete month view with proper structure for rendering
Includes weeks and weekdays data

#### Parameters

##### year

`number`

##### month

`number`

##### options

[`CalendarGenerationOptions`](CalendarGenerationOptions.md)

#### Returns

`object`

##### month

> **month**: `number`

##### weekdays

> **weekdays**: `string`[]

##### weeks

> **weeks**: `object`[]

##### year

> **year**: `number`

***

### generateYearView()

> **generateYearView**(`year`, `options`): `object`

Defined in: [Date/interfaces/calendar-generator.service.interfaces.ts:62](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/calendar-generator.service.interfaces.ts#L62)

Generate a complete year view with all months

#### Parameters

##### year

`number`

##### options

[`YearViewGenerationOptions`](YearViewGenerationOptions.md)

#### Returns

`object`

##### months

> **months**: [`CalendarMonth`](CalendarMonth.md)[]

##### year

> **year**: `number`

***

### getCalendarDaysGenerator()

> **getCalendarDaysGenerator**(`getCurrentDate`, `getCalendarOptions`): () => [`CalendarDate`](CalendarDate.md)[]

Defined in: [Date/interfaces/calendar-generator.service.interfaces.ts:39](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/calendar-generator.service.interfaces.ts#L39)

Get calendar days generation function
Returns a function that can be called to generate calendar days

#### Parameters

##### getCurrentDate

() => `Date`

##### getCalendarOptions

() => [`CalendarGenerationOptions`](CalendarGenerationOptions.md)

#### Returns

> (): [`CalendarDate`](CalendarDate.md)[]

##### Returns

[`CalendarDate`](CalendarDate.md)[]

***

### getWeekNumber()

> **getWeekNumber**(`date`): `number`

Defined in: [Date/interfaces/calendar-generator.service.interfaces.ts:73](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/calendar-generator.service.interfaces.ts#L73)

Get the ISO week number for a date

#### Parameters

##### date

`Date`

#### Returns

`number`
