Để kiểm tra các ngày trong DateTimeIndex có rơi vào năm nhuận (leap year) hay không, sử dụng thuộc tính DateTimeIndex.is_leap_year.
Các bước thực hiện
1. Import thư viện
import pandas as pd
2. Tạo DateTimeIndex tần suất năm
datetimeindex = pd.date_range('2021-12-30 02:30:50', periods=6, tz='Australia/Adelaide', freq='3Y')
3. Kiểm tra năm nhuận
print("\nKiểm tra năm nhuận:\n", datetimeindex.is_leap_year)
Ví dụ hoàn chỉnh
import pandas as pd
datetimeindex = pd.date_range('2021-12-30 02:30:50', periods=6, tz='Australia/Adelaide', freq='3Y')
print("DateTimeIndex:\n", datetimeindex)
print("\nTần suất:", datetimeindex.freq)
print("\nNăm nhuận?\n", datetimeindex.is_leap_year)
Kết quả đầu ra
DateTimeIndex: DatetimeIndex(['2021-12-31 02:30:50+10:30', '2024-12-31 02:30:50+10:30', '2027-12-31 02:30:50+10:30', '2030-12-31 02:30:50+10:30', '2033-12-31 02:30:50+10:30', '2036-12-31 02:30:50+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='3A-DEC') Tần suất: <3 * YearEnds: month=12> Kiểm tra năm nhuận: [False True False False False True]
Giải thích
| Timestamp | Năm | Năm nhuận? |
|---|---|---|
| 2021-12-31 | 2021 | False |
| 2024-12-31 | 2024 | True (chia hết 4, không chia hết 100) |
| 2027-12-31 | 2027 | False |
| 2030-12-31 | 2030 | False |
| 2033-12-31 | 2033 | False |
| 2036-12-31 | 2036 | True |
Quy tắc năm nhuận
- Chia hết cho 4 → năm nhuận.
- Trừ: chia hết cho 100 → KHÔNG nhuận.
- Trừ trường hợp: chia hết cho 400 → CÓ nhuận.
Các thuộc tính datetime liên quan
dt.year # Năm
dt.month # Tháng
dt.day # Ngày
dt.dayofweek # Thứ (0=Mon)
dt.dayofyear # Ngày trong năm
dt.is_leap_year# Boolean array
dt.days_in_month # Số ngày trong tháng