Vietnamese Lunar Calendar Library for Python - Thư viện Âm lịch Việt Nam
Project description
vnlunar - Vietnamese Lunar Calendar for Python
Thư viện Âm lịch Việt Nam cho Python - Vietnamese Lunar Calendar Library
Giới thiệu / Introduction
vnlunar là thư viện Python để chuyển đổi và tính toán lịch âm Việt Nam, dựa trên thuật toán thiên văn chính xác. Thư viện hỗ trợ:
- Chuyển đổi dương lịch <-> âm lịch
- Tính Can Chi, Ngũ Hành
- Xem ngày tốt xấu (Hoàng Đạo / Hắc Đạo)
- 12 Sao Kiến Trừ, 28 Tú Sao
- Hướng xuất hành, Tuổi xung
- Giờ Hoàng Đạo
- Và nhiều tính năng khác...
Cài đặt / Installation
pip install vnlunar
Hoặc cài đặt từ source:
git clone https://github.com/min9802/pyvnlunar.git
cd pyvnlunar
pip install -e .
Sử dụng cơ bản / Basic Usage
1. Chuyển đổi dương lịch sang âm lịch
import vnlunar
# Lấy thông tin âm lịch của ngày 7/11/2025
lunar = vnlunar.get_lunar_date(7, 11, 2025)
print(f"Ngày âm lịch: {lunar['day']}/{lunar['month']}/{lunar['year']}")
print(f"Tháng nhuận: {'Có' if lunar['leap'] == 1 else 'Không'}")
2. Lấy thông tin đầy đủ về một ngày
import vnlunar
info = vnlunar.get_full_info(7, 11, 2025)
print(f"Dương lịch: {info['solar']['day']}/{info['solar']['month']}/{info['solar']['year']}")
print(f"Âm lịch: {info['lunar']['day']}/{info['lunar']['month']}/{info['lunar']['year']}")
print(f"Can Chi ngày: {info['can_chi']['day']}")
print(f"Can Chi tháng: {info['can_chi']['month']}")
print(f"Can Chi năm: {info['can_chi']['year']}")
print(f"Sao: {info['12_stars']['name']} - {info['12_stars']['description']}")
print(f"Hoàng/Hắc Đạo: {info['day_type']['type']}")
3. Xem ngày tốt xấu cho các việc
import vnlunar
# Tính Julian Day Number
jd = vnlunar.jdn(7, 11, 2025)
# Xem ngày có tốt cho cưới hỏi không
ket_qua = vnlunar.check_good_day(jd, "wedding")
print(f"Ngày {ket_qua['star']['name']}: {ket_qua['description']}")
# Tìm các ngày tốt để khai trương trong tháng 11/2025
start_jd = vnlunar.jdn(1, 11, 2025)
end_jd = vnlunar.jdn(30, 11, 2025)
ngay_tot = vnlunar.find_good_days(start_jd, end_jd, "opening")
print(f"\nCác ngày tốt để khai trương trong tháng 11/2025:")
for ngay in ngay_tot:
print(f" {ngay['solar']['day']}/{ngay['solar']['month']}/{ngay['solar']['year']} - Sao {ngay['star']['name']}")
4. Kiểm tra tuổi xung
import vnlunar
jd = vnlunar.jdn(7, 11, 2025)
nam_sinh = 1990
# Kiểm tra tuổi có xung không
xung = vnlunar.check_age_conflict(jd, nam_sinh)
print(f"Năm sinh {nam_sinh} xung với ngày này: {'Có' if xung else 'Không'}")
# Lấy thông tin chi tiết về tuổi xung
tuoi_xung_info = vnlunar.get_conflicting_ages(jd, 2025)
print(f"\n{tuoi_xung_info['description']}")
print(f"Các tuổi xung trong ngày này:")
for tuoi in tuoi_xung_info['ages'][:5]:
print(f" Tuổi {tuoi['age']}: {tuoi['can_chi']} ({tuoi['animal']})")
5. Xem hướng xuất hành
import vnlunar
jd = vnlunar.jdn(7, 11, 2025)
# Hướng theo ngày
huong_ngay = vnlunar.get_direction_info(jd)
print(f"Hướng tốt: {', '.join(huong_ngay['good_directions'])}")
print(f"Hướng xấu: {', '.join(huong_ngay['bad_directions'])}")
# Hướng theo tuổi
huong_tuoi = vnlunar.get_age_direction(1990, 2025)
print(f"\nTuổi: {huong_tuoi['age']} ({huong_tuoi['zodiac']})")
print(f"Hướng tốt: {', '.join(huong_tuoi['good_directions'])}")
# Hướng kết hợp
huong_xuat_hanh = vnlunar.get_travel_direction(jd, 1990, 2025)
print(f"\n{huong_xuat_hanh['advice']}")
6. Giờ Hoàng Đạo
import vnlunar
jd = vnlunar.jdn(7, 11, 2025)
# Lấy các giờ Hoàng Đạo trong ngày
gio_hoang_dao = vnlunar.get_auspicious_hours(jd)
print("Giờ Hoàng Đạo:")
for hour in gio_hoang_dao:
print(f" {hour['hour_name']}: {hour['time_range']}")
# Kiểm tra một giờ cụ thể
gio_info = vnlunar.check_travel_hour(jd, "Tý")
print(f"\nGiờ {gio_info['zodiac_hour']}: {'TỐT' if gio_info['is_good'] else 'XẤU'}")
Các loại việc hỗ trợ xem ngày
"wedding": Cưới hỏi"building": Xây nhà"travel": Xuất hành"opening": Khai trương"moving": Chuyển nhà"investing": Đầu tư
API Reference
Core Functions
jdn(day, month, year): Chuyển ngày dương lịch sang Julian Day Numberjdn2date(jd): Chuyển Julian Day Number sang ngày dương lịchget_lunar_date(day, month, year): Lấy thông tin âm lịchconvert_solar_to_lunar(day, month, year, timezone): Chuyển đổi với múi giờ tùy chỉnh
Calendar Functions
get_can_chi(lunar): Lấy Can Chi của ngày, tháng, nămget_year_can_chi(year): Lấy Can Chi của nămget_year_element(year): Lấy Ngũ Hành của nămget_auspicious_hours(jd): Lấy giờ Hoàng Đạoget_day_of_week(jd): Lấy thứ trong tuần
Astrology Functions
get_12_stars(lunar_day, lunar_month): Lấy 12 Sao Kiến Trừget_12_gods(jd): Lấy 12 Thần Hoàng Đạo/Hắc Đạoget_12_constructions(lunar_day, lunar_month): Lấy Thập Nhị Trựcget_28_mansions(jd): Lấy 28 Tú Saoget_nayin(jd): Lấy Nạp Âmget_day_type(lunar_day, lunar_month): Kiểm tra Hoàng Đạo/Hắc Đạocheck_good_day(jd, activity): Xem ngày tốt xấu cho việcfind_good_days(start_jd, end_jd, activity): Tìm các ngày tốt
Direction Functions
get_conflicting_ages(jd, current_year): Lấy thông tin tuổi xungcheck_age_conflict(jd, birth_year): Kiểm tra tuổi xungget_direction_info(jd): Lấy hướng theo Ngọc Hạp Thông Thưget_god_directions(jd): Lấy hướng thần (Thần Tài, Hỷ Thần, Phúc Thần)get_age_direction(birth_year, current_year): Hướng theo tuổiget_travel_direction(jd, birth_year, current_year): Hướng xuất hành tổng hợpcheck_travel_hour(jd, zodiac_hour): Kiểm tra giờ xuất hành
Main Function
get_full_info(day, month, year): Lấy tất cả thông tin của một ngày
So sánh với cnlunar (Lịch Trung Quốc)
| Tính năng | vnlunar (VN) | cnlunar (CN) |
|---|---|---|
| Múi giờ mặc định | UTC+7 (VN) | UTC+8 (CN) |
| Thuật toán | Thiên văn VN | Thiên văn CN |
| Tên Can Chi | Tiếng Việt | Tiếng Trung |
| Con giáp | Mèo (năm Mão) | Thỏ (năm Mão) |
| Tiết khí | Tiếng Việt | Tiếng Trung |
| Hướng xuất hành | Theo truyền thống VN | Theo truyền thống CN |
Đóng góp / Contributing
Mọi đóng góp đều được hoan nghênh! Vui lòng:
- Fork repository
- Tạo branch mới (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Mở Pull Request
License
Free for personal and non-commercial use.
Version
Current version: 1.0.4
Credits
- Dựa trên thuật toán thiên văn của Ho Ngoc Duc
- Tham khảo: "Lịch Việt Nam - Nguyên lý và các bảng tra cứu" - Hoàng Xuân Hãn
Liên hệ / Contact
- Website: https://vnlunar.min-services.com
- GitHub Issues: https://github.com/min9802/pyvnlunar/issues
Made with ❤️ for Vietnamese Lunar Calendar
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vnlunar-1.0.4.tar.gz.
File metadata
- Download URL: vnlunar-1.0.4.tar.gz
- Upload date:
- Size: 27.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c7c387072f9138bd7c1435f3a4de23500c5d132c3671f0bb41f569527048a50
|
|
| MD5 |
e1e5cb7426e1ec82e42e2a7f78115102
|
|
| BLAKE2b-256 |
7f56320d7324b81d888148013d641bc91299fe9c56a1c8a250f0ce6a0549e31e
|
File details
Details for the file vnlunar-1.0.4-py3-none-any.whl.
File metadata
- Download URL: vnlunar-1.0.4-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
609775e444c784acb4e91c5e206fa67ddd41e0699b7e70025a86d029c4888ac1
|
|
| MD5 |
dfba9b64b86d273617088a4fcb0a86be
|
|
| BLAKE2b-256 |
dcd7ed8dbd839e17e42e4fc133e4ccabd810b094a769933fbb6f09542f2ad942
|