# Lunar Solar Converter

一个用于公历（阳历）和农历（阴历）转换的 TypeScript 工具库。基于 tyme4ts 实现，支持节假日、节气等信息的查询。

## 功能特点

- 公历转农历
- 农历转公历
- 支持农历节日显示
- 支持节气显示
- 支持生肖显示
- 支持天干地支显示
- 支持法定节假日标记

## 安装

```bash
npm install lunar-solar-converter
```

## 使用方法

```typescript
import { Calendar } from "lunar-solar-converter";

const solarDate = Calendar.lunarToSolar(2024, 1, 1);
console.log(solarDate);
// 输出:
// {
//   year: 2024,
//   month: 2,
//   day: 10
// }
```

## 农历转公历

```typescript
import { Calendar } from "lunar-solar-converter";

const solarDate = Calendar.lunarToSolar(2024, 1, 1);
console.log(solarDate);
// 输出:
// {
//   year: 2024,
//   month: 2,
//   day: 10
// }
```

## 获取某月农历信息

```typescript
import { Calendar } from "lunar-solar-converter";

const monthDays = Calendar.getLunarMonthDays(2024, 1);
console.log(monthDays);
// 返回当月所有日期的农历信息数组
```

## 判断闰月

```typescript
import { Calendar } from "lunar-solar-converter";

const isLeap = Calendar.isLeapMonth(2024, 2);
console.log(isLeap); // false
```

## API 文档

### Calendar.solarToLunar(year: number, month: number, day: number): CalendarDate

将公历日期转换为农历日期。

### Calendar.lunarToSolar(year: number, month: number, day: number, isLeapMonth?: boolean): CalendarDate

将农历日期转换为公历日期。

### Calendar.getLunarMonthDays(year: number, month: number): CalendarDate[]

获取指定公历月份的所有日期的农历信息。

### Calendar.isLeapMonth(year: number, month: number): boolean

判断指定的农历月份是否为闰月

## 日期对象说明

```typescript
interface CalendarDate {
  year: number; // 年份
  month: number; // 月份
  day: number; // 日期
  yearName?: string; // 年份名称（天干地支）
  monthName?: string; // 月份名称
  dayName?: string; // 日期名称
  zodiac?: string; // 生肖
  festival?: string; // 节日
  term?: string; // 节气
}
```

## 许可证

MIT

## 致谢

本项目基于 tyme4ts 实现。