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
Metadata
Release files for vnlunar 1.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vnlunar-1.0.5.tar.gz | 36.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vnlunar-1.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.8 kB
Release files / vnlunar-1.0.5.tar.gz
| Download URL | vnlunar-1.0.5.tar.gz |
|---|---|
| Size | 36.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
60fd991fdd6bb09a4b422535b5ee81238d877be86238554e9ddf1235fe303cde
|
|
BLAKE2b-256 checksum How to use checksums |
1cfc7fb07349cbe063c2d5e3293611d95c7a960303cf9fed89a3a57db2d2d20e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|
Release files / vnlunar-1.0.5-py3-none-any.whl
| Download URL | vnlunar-1.0.5-py3-none-any.whl |
|---|---|
| Size | 30.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c01e2a600ff5ae738677a21d0e0b04919639a074e8092c572d961a377d8d464
|
|
BLAKE2b-256 checksum How to use checksums |
488454373e692979704c6e76d01b8432e6f03c031d64334e3fde02af8b5c73be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|