Can Chi là một hệ thống không thể tách rời với Âm lịch. lunar-calendar cung cấp đầy đủ các tính năng để tương tác thông qua lớp Sexagenary.
Can chi bao gồm 10 Thiên can và 12 Địa chi, kết hợp với nhau. Vì đặc điểm thiếu sót các từ ngữ kỹ thuật để diễn tả tên riêng của 10 Thiên can bằng tiếng Anh, do đó lunar-calendar sử dụng tên Tiếng Việt để thay thế, bằng cách loại bỏ đi các dấu, ví dụ Giáp sẽ được xác định là Giap
, Thân sẽ được xác định là Than
. Bạn hoàn toàn có thể tùy chỉnh chúng để sử dụng cho các mục đích riêng biệt.
Bảng sau liệt kê các thuộc tính cơ bản của 10 Thiên can và 12 Địa chi, bạn cần nắm bắt để thuận tiện khi sử dụng:
Số đại diện | Tên Thiên Can | Khóa định danh Thiên Can | Tên Địa Chi | Khóa định danh Địa chi |
---|---|---|---|---|
0 | Giap | giap | Ty | ty |
1 | At | at | Suu | suu |
2 | Binh | binh | Dan | dan |
3 | Dinh | dinh | Mao | mao |
4 | Mau | mau | Thin | thin |
5 | Ky | ky | Ti | ti |
6 | Canh | canh | Ngo | ngo |
7 | Tan | tan | Mui | mui |
8 | Nham | nham | Than | than |
9 | Quy | quy | Dau | dau |
10 | Tuat | tuat | ||
11 | Hoi | hoi |
Lớp Sexagenary cung cấp một bộ các ký tự được sử dụng truy xuất hoặc định dạng các đối tượng Can hay Chi đại diện cho một khía cạnh của Âm lịch. Bảng sau liệt kê danh sách được hỗ trợ, trong đó có thể nhận thấy các ký tự viết HOA đại diện cho Thiên can, và viết thường đại diện cho Địa chi.
Ký tự đơn | Mô tả |
---|---|
D | Can của ngày |
d | Chi của ngày |
M | Can của tháng |
m | Chi của tháng |
Y | Can của năm |
y | Chi của năm |
H | Can của giờ |
h | Chi của giờ |
N | Can của giờ Tý (bắt đầu ngày mới) |
W | Can của tuần Giáp |
w | Chi của tuần Giáp |
Lớp Sexagenary yêu cầu một điểm mốc Âm lịch để tính toán. Do đó trước khi tạo đối tượng, bạn cần xác định được thời điểm Âm lịch. Ví dụ sau đây sẽ in ra tất tên của các đối tượng Can Chi được hỗ trợ tương ứng với mốc Âm lịch 2024-08-10 22:30:00 +07:00
:
app.php
<?php
use LucNham\LunarCalendar\LunarDateTime;
use LucNham\LunarCalendar\Sexagenary;
require_once('./vendor/autoload.php');
$lunar = new LunarDateTime('2024-08-10 22:30 +0700');
$sexa = new Sexagenary($lunar);
print_r(
[
'Mốc thời gian Âm lịch' => $lunar->format('Y-m-d H:i:s P k'),
'Ngày_________________' => "{$sexa->D->name} {$sexa->d->name}",
'Tháng________________' => "{$sexa->M->name} {$sexa->m->name}",
'Năm__________________' => "{$sexa->Y->name} {$sexa->y->name}",
'Giờ__________________' => "{$sexa->H->name} {$sexa->h->name}",
'Tuần_________________' => "{$sexa->W->name} {$sexa->w->name}",
]
);
Kết quả:
Array
(
[Mốc thời gian Âm lịch] => 2024-08-10 22:30:00 +07:00
[Ngày_________________] => Ky Mao
[Tháng________________] => Quy Dau
[Năm__________________] => Giap Thin
[Giờ__________________] => At Hoi
[Tuần_________________] => Giap Tuat
)
Lớp Sexagenary hỗ trợ định dạng thân thiện các đối tượng thông qua phương thức format()
. Phương thức này yêu cầu tham số đầu vào là chuỗi định dạng, với 2 đặc điểm như sau:
- Nếu chỉ cần xuất ra tên của một đối tượng đơn lẻ, hãy nhập ký tự đại diện tương ứng có hoặc không được bao bọc bằng dấu ngoặc vuông [] đều hoạt động.
- Nếu cần kết hợp nhiều dữ kiện đầu ra, bắt buộc các ký tự đại diện phải được bao bọc bên trong cặp dấu ngoặc vuông [].
app.php
<?php
use LucNham\LunarCalendar\LunarDateTime;
use LucNham\LunarCalendar\Sexagenary;
require_once('./vendor/autoload.php');
$lunar = new LunarDateTime('2024-08-10 22:30 +0700');
$sexa = new Sexagenary($lunar);
print_r(
[
'Chỉ lấy Can ngày cách 1____' => $sexa->format('D'),
'Chỉ lấy Can ngày cách 2____' => $sexa->format('[D]'),
'Kết hợp Can Chi ngày cách 1' => $sexa->format('[D d]'),
'Kết hợp Can Chi ngày cách 2' => $sexa->format('[D+]'),
'Kết hợp nhiều loại hỗn hợp_' => $sexa->format('Ngày [D+], tháng [M+], năm [Y+]')
]
);
Kết quả:
Array
(
[Chỉ lấy Can ngày cách 1____] => Ky
[Chỉ lấy Can ngày cách 2____] => Ky
[Kết hợp Can Chi ngày cách 1] => Ky Mao
[Kết hợp Can Chi ngày cách 2] => Ky Mao
[Kết hợp nhiều loại hỗn hợp_] => Ngày Ky Mao, tháng Quy Dau, năm Giap Thin
)
Nếu bạn sử dụng Tiếng Việt, thật tuyệt, lunar-calendar đã hỗ trợ sẵn việt Việt hóa hệ thống Can Chi. Cách sử dụng rất đơn giản, bằng cách truyền thêm tham số bổ sung khi khởi tạo đối tượng Sexagenary như sau:
app.php
<?php
use LucNham\LunarCalendar\LunarDateTime;
use LucNham\LunarCalendar\Sexagenary;
use LucNham\LunarCalendar\Terms\VnBranchIdentifier;
use LucNham\LunarCalendar\Terms\VnStemIdentifier;
require_once('./vendor/autoload.php');
$lunar = new LunarDateTime('2024-01-01 15:30 +0700');
$sexagenary = new Sexagenary(
lunar: $lunar,
stemIdetifier: VnStemIdentifier::class,
branchIdentifier: VnBranchIdentifier::class,
);
$ouput = $sexagenary->format('Ngày [D+], tháng [M+], năm [Y+], giờ [H+]');
print_r($ouput);
Kết quả:
Ngày Giáp Thìn, tháng Bính Dần, năm Giáp Thìn, giờ Nhâm Thân
Ví dụ trên giới thiệu một trong nhiều cách thức để bản địa hóa các đối tượng Can Chi, bạn hoàn toàn có thể xử lý công việc này bằng các ý tưởng của riêng mình.