Thư viện âm lịch độ chính xác cao — Can Chi · Con giáp · Tiết khí · Lễ hội · Định dạng · Đa ngôn ngữ
Tính toán âm lịch dựa trên thuật toán thiên văn. Hỗ trợ 4 biến thể âm lịch Trung Quốc/Nhật Bản/Hàn Quốc/Việt Nam và 6 ngôn ngữ: giản thể Trung Văn/phồn thể Trung Văn (Đài Loan/Hồng Kông)/日本語/한국어/Tiếng Việt.
Copyright (c) 2025 北京锋通科技有限公司 (郭玉峰, 吴琼). MIT License.
import { ChineseDate } from 'chinese-lunar-date'
const date = ChineseDate.fromGregorian(2024, 6, 21)
date.yearGanZhi // "甲辰"
date.zodiac // "Thìn"
date.zodiacEmoji // "🐉"
date.formatFull() // "Giáp Thìn năm Thìn tháng năm mùng sáu"
CalendarConfig. Cùng một thuật toán thích ứng các kỷ nguyên và lịch sử múi giờ khác nhauChineseDate v.v.) là đối tượng giá trị bất biến, thuật toán cấp thấp đều là hàm thuần túy. Hai chế độ có thể sử dụng độc lập| chinese-lunar-date | date-chinese | lunar-javascript | |
|---|---|---|---|
| Độ chính xác | Thuật toán thiên văn (VSOP87) | Thuật toán thiên văn | Tra bảng |
| TypeScript | TS gốc, kiểu đầy đủ | Ghi chú JSDoc | @types cộng đồng |
| Phong cách API | Đối tượng giá trị bất biến | Hàm + lớp nội bộ | Đối tượng thay đổi |
| Can Chi | Năm tháng ngày tam trụ | Chỉ trụ năm | Năm tháng ngày tam trụ |
| Con giáp | 6 ngôn ngữ + Emoji | Không | Chỉ Trung Văn |
| Tiết khí | 24 tiết khí, 6 ngôn ngữ | Không | Chỉ Trung Văn |
| Lễ hội | 13 loại, lọc theo khu vực | Không | Chỉ Trung Văn |
| Đa lịch | Trung / Nhật / Hàn / Việt | Chỉ Trung Quốc | Chỉ Trung Quốc |
| Phồn thể | zh-TW / zh-HK thích ứng riêng | Không | Không |
| Định dạng | 5 loại tích hợp + mẫu tùy chỉnh | Không | Hạn chế |
| Kích thước (gzip) | ~16 KB | ~15 KB | ~20 KB |
with() / addDays() trả về instance mớizh-CN / zh-TW / zh-HK / ja-JP / ko-KR / vi-VNnpm install chinese-lunar-date
import { ChineseDate } from 'chinese-lunar-date'
const date = ChineseDate.fromGregorian(2024, 6, 21)
const date2 = ChineseDate.fromDate(new Date(2024, 5, 21))
const today = ChineseDate.today()
const date3 = ChineseDate.fromValue({ cycle: 78, year: 34, month: 5, leap: false, day: 6 })
const date = ChineseDate.fromGregorian(2024, 6, 21)
date.cycle // 78
date.year // 34
date.month // 5
date.leap // false
date.day // 6
date.gregorianYear // 2024
date.yearGanZhi // "甲辰"
date.monthGanZhi // "庚午"
date.dayGanZhi // "甲寅"
date.zodiac // "Thìn"
date.zodiacEmoji // "🐉"
date.zodiacIndex // 4
const date = ChineseDate.fromGregorian(2024, 6, 21)
date.formatFull('vi-VN') // "Giáp Thìn năm Thìn tháng năm mùng sáu"
date.formatGanZhi() // "甲辰年 庚午月 甲寅日"
date.formatCompact() // "78/34/5/0/6"
date.format('{Ygz}{Z} năm {Mname}{Dname}', 'vi-VN')
const date = ChineseDate.fromGregorian(2024, 6, 21)
const tomorrow = date.addDays(1)
const yesterday = date.addDays(-1)
const firstDay = date.with({ day: 1 })
tomorrow.isAfter(date) // true
const date = ChineseDate.fromGregorian(2024, 6, 21)
date.toGregorian() // { year: 2024, month: 6, day: 21 }
date.toDate() // Date object
date.toJSON() // { cycle: 78, year: 34, month: 5, leap: false, day: 6 }
import { ChineseDate, JapaneseDate, KoreanDate, VietnameseDate } from 'chinese-lunar-date'
const cn = ChineseDate.fromGregorian(2024, 6, 21) // UTC+8
const jp = JapaneseDate.fromGregorian(2024, 6, 21) // UTC+9
const kr = KoreanDate.fromGregorian(2024, 6, 21) // UTC+8:30/9
const vn = VietnameseDate.fromGregorian(2024, 6, 21) // UTC+7/8
Lưu ý: Do chênh lệch múi giờ, cùng một ngày dương lịch có thể tương ứng với ngày âm lịch khác nhau trong các lịch khác nhau.
import { ChineseDate, solarTermName } from 'chinese-lunar-date'
ChineseDate.solarTerm(5, 2024) // Thanh minh
solarTermName(3, 'vi-VN') // "Kinh trập"
const date = ChineseDate.fromGregorian(2024, 4, 4)
date.getSolarTermName('vi-VN') // "Thanh minh"
import { ChineseDate } from 'chinese-lunar-date'
ChineseDate.festivalDate('spring', 2024) // Tết Nguyên đán
ChineseDate.festivalsInYear(2024, 'vi-VN')
import { getLocale, availableLocales } from 'chinese-lunar-date'
const loc = getLocale('vi-VN')
loc.zodiac // ["Tý", "Sửu", "Dần", "Mão", "Thìn", "Tỵ", "Ngọ", "Mùi", "Thân", "Dậu", "Tuất", "Hợi"]
loc.solarTerms // ["Lập xuân", "Vũ thủy", "Kinh trập", ...]
| Token | Xuất | Ví dụ |
|---|---|---|
{Ygz} |
Can chi năm | 甲辰 |
{Z} |
Con giáp | Thìn |
{Mname} |
Tên tháng | tháng năm |
{Dname} |
Tên ngày | mùng sáu |
{L} |
Đánh dấu nhuận | nhuận |
{GY} |
Năm dương lịch | 2024 |
{Wname} |
Thứ | Thứ Tư |
Danh sách Token đầy đủ vui lòng xemHướng dẫn sử dụng.
<script src="dist/chinese-lunar-date.iife.js"></script>
<script>
const date = ChineseDate.ChineseDate.fromGregorian(2024, 6, 21)
console.log(date.formatFull('vi-VN'))
</script>
npm install chinese-lunar-date
npm run build # Biên dịch ESM + CJS + IIFE
npm run build:types # Tạo khai báo kiểu .d.ts
npm run test # Chạy test
Nếu bạn gặp vấn đề khi sử dụng, hoặc có đề xuất tính năng, nhu cầu hợp tác kinh doanh, vui lòng liên hệ qua email:
MIT License
Copyright (c) 2025 北京锋通科技有限公司 (郭玉峰, 吴琼)