Công cụ này làm gì
Công cụ Cộng Tháng Vào Một Ngày nhận một ngày bắt đầu bất kỳ và dời ngày đó về phía trước (hoặc lùi lại nếu bạn nhập số âm) theo số tháng nguyên. Kết quả trả về là ngày dương lịch chính xác. Khác với việc cộng thêm một số ngày cố định, cộng tháng cần được xử lý đặc biệt khi tháng đích ngắn hơn tháng bắt đầu — và công cụ này tự động lo phần đó cho bạn.
Cách sử dụng
Hãy chọn ngày bắt đầu, nhập số tháng muốn cộng thêm (dùng số âm để lùi về quá khứ), rồi xem ngày kết quả. Bảng chi tiết sẽ hiển thị năm, tháng và ngày của kết quả, đồng thời báo cho bạn biết khi ngày đã được kéo về ngày cuối tháng.
Giải thích công thức
Chỉ số tháng theo lịch được tính bằng (năm × 12) + (tháng − 1) + N. Lấy kết quả chia cho 12 sẽ ra năm mới, còn phần dư cho ra tháng mới. Ngày được giữ nguyên — trừ khi ngày đó không còn tồn tại trong tháng mới. Công thức tổng quát là:
$$\text{Result} = \text{Date}(Y, M+N, \min(D, \text{lastDay}(Y, M+N)))$$trong đó tháng mới và ngày mới được tính như sau:
$$M_{new} = ((M-1)+N) \bmod 12 + 1$$$$D_{new} = \min(D, \text{lastDay}(Y_{new}, M_{new}))$$Ví dụ, 31 tháng 1 cộng 1 tháng thì không thể thành "31 tháng 2", nên ngày sẽ được kéo về ngày hợp lệ cuối cùng (28 hoặc 29). Cách xử lý này khớp với hành vi của hầu hết các hàm ngày tháng trong bảng tính và thư viện lập trình.
Ví dụ minh họa
Ngày bắt đầu là 2024-01-31, cộng thêm 1 tháng. Tháng đích là tháng 2 năm 2024 — một năm nhuận có 29 ngày. Vì \(31 > 29\), ngày được kéo về 29, cho ra kết quả 2024-02-29.
Số ngày trong mỗi tháng
Vì các tháng có độ dài khác nhau, ngày bạn bắt đầu có thể không tồn tại trong tháng đích. Bảng tham khảo dưới đây liệt kê số ngày trong mỗi tháng của lịch Gregorian.
| # | Tháng | Số ngày |
|---|---|---|
| 1 | Tháng Một | 31 |
| 2 | Tháng Hai | 28 (29 trong năm nhuận) |
| 3 | Tháng Ba | 31 |
| 4 | Tháng Tư | 30 |
| 5 | Tháng Năm | 31 |
| 6 | Tháng Sáu | 30 |
| 7 | Tháng Bảy | 31 |
| 8 | Tháng Tám | 31 |
| 9 | Tháng Chín | 30 |
| 10 | Tháng Mười | 31 |
| 11 | Tháng Mười Một | 30 |
| 12 | Tháng Mười Hai | 31 |
Bốn tháng có 30 ngày là Tháng Tư, Tháng Sáu, Tháng Chín và Tháng Mười Một; những tháng còn lại có 31 ngày, ngoại trừ Tháng Hai. Tháng Hai là tháng duy nhất có độ dài thay đổi: nó có 29 ngày trong năm nhuận và 28 ngày trong các năm khác.
Cách xác định năm nhuận
Theo lịch Gregorian, một năm là năm nhuận nếu nó thỏa mãn các quy tắc sau:
- Năm đó chia hết cho 4, và
- nó không chia hết cho 100, trừ khi
- nó cũng chia hết cho 400.
Vì vậy 2020 và 2024 là những năm nhuận (chia hết cho 4, không chia hết cho 100). Năm 1900 không phải là năm nhuận (chia hết cho 100 nhưng không chia hết cho 400), trong khi 2000 là năm nhuận (chia hết cho 400). Đây là lý do tại sao \(\text{31 Tháng Một} + 1 \text{ tháng}\) cho kết quả 28 Tháng Hai trong năm 2023 nhưng 29 Tháng Hai trong năm 2024.
Câu hỏi thường gặp
Điều gì xảy ra ở cuối tháng? Nếu ngày bắt đầu của bạn không tồn tại trong tháng đích, nó sẽ tự động nhảy về ngày cuối cùng của tháng đó.
Tôi có thể trừ tháng không? Có — chỉ cần nhập số âm như -3 để lùi lại ba tháng.
Công cụ có xử lý năm nhuận không? Có. Việc tính ngày cuối tháng đã tự động tính đến năm nhuận, nên cộng một tháng vào 31 tháng 1 sẽ ra 29 tháng 2 trong năm nhuận và 28 tháng 2 trong năm thường.