Cho một đối tượng datetime, nhiệm vụ là viết Chương trình Python để tính ngày cuối cùng của đối tượng datetime Tháng
ví dụ
Đầu vào. test_date = ngày giờ. ngày giờ[2018, 6, 4]
đầu ra. 30
Giải trình. Tháng 4 mỗi năm có 30 ngày
Đầu vào. test_date = ngày giờ. ngày giờ[2020, 2, 4]
đầu ra. 29
Giải trình. Tháng 2 năm 2020 có 29 ngày là năm nhuận
Phương pháp số 1. Sử dụng thay thế [] + timedelta []
Trong đó, trích xuất tháng tiếp theo và trừ đi ngày của đối tượng tháng tiếp theo được trích xuất từ tháng tiếp theo, kết quả là 1 ngày trước khi bắt đầu tháng tiếp theo, i. ngày cuối cùng của tháng hiện tại
Python3
The original date is : 2018-06-04 00:00:00 Last date of month : 305
The original date is : 2018-06-04 00:00:00 Last date of month : 306
The original date is : 2018-06-04 00:00:00 Last date of month : 307
The original date is : 2018-06-04 00:00:00 Last date of month : 308
The original date is : 2018-06-04 00:00:00 Last date of month : 309
The original date is : 2018-06-04 00:00:00 Last date of month : 300
The original date is : 2018-06-04 00:00:00 Last date of month : 301
The original date is : 2018-06-04 00:00:00 Last date of month : 302
The original date is : 2018-06-04 00:00:00 Last date of month : 300
The original date is : 2018-06-04 00:00:00 Last date of month : 301
The original date is : 2018-06-04 00:00:00 Last date of month : 302
The original date is : 2018-06-04 00:00:00 Last date of month : 303
The original date is : 2018-06-04 00:00:00 Last date of month : 302
The original date is : 2018-06-04 00:00:00 Last date of month : 305
The original date is : 2018-06-04 00:00:00 Last date of month : 306
The original date is : 2018-06-04 00:00:00 Last date of month : 307
The original date is : 2018-06-04 00:00:00 Last date of month : 308
The original date is : 2018-06-04 00:00:00 Last date of month : 309
The original date is : 2018-06-04 00:00:00 Last date of month : 3050____151
The original date is : 2018-06-04 00:00:00 Last date of month : 3052
The original date is : 2018-06-04 00:00:00 Last date of month : 3053
The original date is : 2018-06-04 00:00:00 Last date of month : 3054
The original date is : 2018-06-04 00:00:00 Last date of month : 3055
The original date is : 2018-06-04 00:00:00 Last date of month : 3056
The original date is : 2018-06-04 00:00:00 Last date of month : 3057
The original date is : 2018-06-04 00:00:00 Last date of month : 3058
The original date is : 2018-06-04 00:00:00 Last date of month : 302
The original date is : 2018-06-04 00:00:00 Last date of month : 3060
The original date is : 2018-06-04 00:00:00 Last date of month : 302
The original date is : 2018-06-04 00:00:00 Last date of month : 3062
The original date is : 2018-06-04 00:00:00 Last date of month : 306
The original date is : 2018-06-04 00:00:00 Last date of month : 3052
The original date is : 2018-06-04 00:00:00 Last date of month : 3065
The original date is : 2018-06-04 00:00:00 Last date of month : 302
The original date is : 2018-06-04 00:00:00 Last date of month : 305
The original date is : 2018-06-04 00:00:00 Last date of month : 306
The original date is : 2018-06-04 00:00:00 Last date of month : 3069
The original date is : 2018-06-04 00:00:00 Last date of month : 3070
The original date is : 2018-06-04 00:00:00 Last date of month : 3071
The original date is : 2018-06-04 00:00:00 Last date of month : 302
The original date is : 2018-06-04 00:00:00 Last date of month : 3058
The original date is : 2018-06-04 00:00:00 Last date of month : 3074
The original date is : 2018-06-04 00:00:00 Last date of month : 3065
The original date is : 2018-06-04 00:00:00 Last date of month : 302
The original date is : 2018-06-04 00:00:00 Last date of month : 3077
The original date is : 2018-06-04 00:00:00 Last date of month : 3078
The original date is : 2018-06-04 00:00:00 Last date of month : 309
The original date is : 2018-06-04 00:00:00 Last date of month : 3050
The original date is : 2018-06-04 00:00:00 Last date of month : 3081
The original date is : 2018-06-04 00:00:00 Last date of month : 3052
The original date is : 2018-06-04 00:00:00 Last date of month : 3053
The original date is : 2018-06-04 00:00:00 Last date of month : 3084
đầu ra
The original date is : 2018-06-04 00:00:00 Last date of month : 30
Phương pháp #2. Sử dụng lịch[]
Điều này sử dụng một chức năng sẵn có để giải quyết vấn đề này. Trong trường hợp này, năm và tháng đã cho, phạm vi có thể được tính bằng cách sử dụng monthrange[] và phần tử thứ hai của nó có thể nhận được kết quả cần thiết
Trong bài viết này, chúng ta sẽ thảo luận về cách tìm ngày cuối cùng của tháng bằng Python bằng các mô-đun khác nhau
Mục lục
- Sử dụng lịch. hàm tháng []
- Sử dụng dateutil. hàm relativedelta[]
- Sử dụng mô-đun ngày giờ
- Sử dụng gấu trúc. hàm end_time[]
- Sử dụng gấu trúc. phạm vi ngày []
Sử dụng hàm The original date is : 2018-06-04 00:00:00
Last date of month : 30
4
Hàm
The original date is : 2018-06-04 00:00:00 Last date of month : 305 được sử dụng để trả về một bộ chứa ngày trong tuần đầu tiên của tháng và tổng số ngày trong tháng. Chúng ta phải chuyển năm và tháng cho chức năng này
Sau khi nhận được các giá trị nêu trên, chúng ta sẽ tạo một đối tượng ngày mới sử dụng ngày đã cho và sử dụng hàm
The original date is : 2018-06-04 00:00:00 Last date of month : 306 để thay thế số ngày bằng tổng số ngày trong tháng đó
Ví dụ,
1
2
3
4
5
6
7
nhập lịch
nhập ngày giờ
ngày = ngày giờ. ngày[2021,5,16]
d = ngày. thay thế[ngày = lịch . .khoảng tháng[ngày. năm, ngày. tháng][1]]
in[d]
đầu ra
2021-05-31
Đối với Trăn 3. 7 trở lên, chúng ta cũng có thể sử dụng hàm
The original date is : 2018-06-04 00:00:00 Last date of month : 307 từ mô-đun này để trả về tổng số ngày trong một tháng
Sử dụng hàm The original date is : 2018-06-04 00:00:00
Last date of month : 30
8
dateutil có thể được coi là một phần mở rộng cho mô-đun datetime. Cả hai mô-đun này thường được sử dụng cùng nhau và mô-đun dateutil cung cấp nhiều chức năng để hoạt động trên các đối tượng ngày giờ. Chúng ta có thể sử dụng hàm
The original date is : 2018-06-04 00:00:00 Last date of month : 309 để tính ngày cuối cùng của tháng từ một ngày nhất định
Ví dụ,
1
2
3
4
5
6
nhập ngày giờ
từ dateutil. delta tương đối nhập delta tương đối
d = [ngày giờ. ngày[2021, 5, 16] + relativedelta[day=31]]
in[d]
đầu ra
2021-05-31
Đoạn mã trên đưa ra ngày cuối cùng của tháng trong đối tượng datetime
Sử dụng mô-đun ngày giờ
Chúng ta có thể tạo một hàm nhỏ của riêng mình để trả về ngày cuối cùng của tháng bằng cách sử dụng mô-đun datetime. Phương pháp này có thể được coi là độc đáo nhưng mang lại kết quả mong muốn. Về cơ bản, chúng tôi tính ngày đầu tiên của tháng tiếp theo từ một ngày nhất định, sau đó chúng tôi trừ đi 1 ngày từ ngày này và chúng tôi nhận được ngày của ngày cuối cùng của tháng
Đoạn mã sau thực hiện phương pháp trên
1
2
3
4
5
6
7
nhập ngày giờ
def lom[năm, month, day]:
d = ngày giờ. ngày[năm + int . [month/12], month%12+1, 1]-datetime.timedelta[ngày = 1]
return d
in[lom[2021,5,16]]
đầu ra
2021-05-31
0 ở đây chỉ ra rằng ngày đó là thứ Hai
Sử dụng hàm The original date is : 2018-06-04 00:00:00
Last date of month : 30
0
Mô-đun pandas xử lý rất thường xuyên với dữ liệu chứa giá trị ngày và giờ. Đó là lý do tại sao nó được trang bị các chức năng khác nhau có thể hoạt động với các giá trị như vậy. Không nên sử dụng các phương pháp từ mô-đun này trừ khi một phương pháp đang làm việc với DataFrames
Hàm
The original date is : 2018-06-04 00:00:00 Last date of month : 301 có thể trả về ngày và giờ cuối cùng của một khoảng thời gian nhất định. Chúng tôi có thể chỉ định ngày và đặt tần suất thành 'M' và chúng tôi sẽ nhận được ngày cuối cùng của tháng
Ví dụ,
1
2
3
4
5
6
nhập gấu trúc as pd
nhập ngày giờ
d = pd. Giai đoạn['16-May-2021',freq='M'].thời gian kết thúc. ngày[]
in[d]
đầu ra
2021-05-31
Sử dụng The original date is : 2018-06-04 00:00:00
Last date of month : 30
2
Hàm
The original date is : 2018-06-04 00:00:00 Last date of month : 303 được sử dụng để tạo đối tượng chứa ngày từ đầu đến cuối của các giá trị đã chỉ định. Chúng tôi có thể sửa đổi chức năng này để có được ngày cuối cùng của tháng