Ngày làm việc của Python

Một cách để lấy danh sách ngày làm việc giữa hai ngày trong gấu trúc là sử dụng hàm bdate_range()

Điều đáng chú ý là chức năng này chỉ đếm số ngày giữa ngày bắt đầu và ngày kết thúc, không bao gồm ngày cuối tuần

Ví dụ: chúng ta có thể sử dụng cú pháp sau để đếm số ngày làm việc trong khoảng thời gian từ 1/1/2022 đến 31/12/2022

import pandas as pd

#get all business days between certain start and end dates
business_days = pd.bdate_range('2022-01-01', '2022-12-31')

#view first ten business days
print(business_days[0:10])

DatetimeIndex(['2022-01-03', '2022-01-04', '2022-01-05', '2022-01-06',
               '2022-01-07', '2022-01-10', '2022-01-11', '2022-01-12',
               '2022-01-13', '2022-01-14'],
              dtype='datetime64[ns]', freq='B')

#view total number of business days
len(business_days)

260

Đối tượng được gọi là business_days chứa mọi ngày làm việc giữa ngày bắt đầu và ngày kết thúc được chỉ định

Và bằng cách sử dụng hàm len(), chúng ta thấy rằng tổng số ngày làm việc giữa ngày bắt đầu và ngày kết thúc được chỉ định là 250

Cho trước hai ngày, nhiệm vụ của chúng ta là viết một chương trình Python để tính tổng số ngày làm việc, tôi. e ngày trong tuần giữa hai ngày

Thí dụ

Đầu vào. test_date1, test_date2 = datetime(2015, 6, 3), datetime(2015, 7, 1)

đầu ra. 20

Giải trình. Tổng số ngày trong tuần, tôi. e ngày làm việc là 20 trong tiếng tây ban nha

Đầu vào. test_date1, test_date2 = datetime(2015, 6, 3), datetime(2016, 7, 1)

đầu ra. 282

Giải trình. Tổng số ngày trong tuần, tôi. ngày làm việc là 282 trong khoảng thời gian

Phương pháp 1. Sử dụng timedelta() + sum() + ngày trong tuần()

Trong trường hợp này, tất cả các ngày được trích xuất bằng cách sử dụng timedelta(), bằng cách tăng chênh lệch cho đến ngày kết thúc. Đăng rằng, ngày làm việc được lọc bằng ngày trong tuần (), tính tổng tất cả những ngày có giá trị nhỏ hơn 5. tôi. Thứ Hai – Thứ Sáu

Python3




The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
1

The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
2

The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
3

The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
4
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
5
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
6
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
7

The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
0

The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
1

The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
2
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
3
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
4
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
5
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
6
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
7
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
6
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
9
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
10
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
5
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
6
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
13
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
6
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
15
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
16

The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
0

The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
18

The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
19
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
10
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
11
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
12
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
13
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
14
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
12
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
16
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
12
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
13
The original range : 2015-06-03 00:00:00 2015-07-01 00:00:00
Total business days in range : 20
19

Làm cách nào để tính ngày làm việc bằng Python trừ ngày nghỉ cuối tuần và ngày lễ?

Lấy số ngày làm việc (các ngày trong tuần) giữa hai ngày mà không bị numpy .
Đầu tiên, lặp lại từ ngày bắt đầu đến ngày kết thúc một ngày bằng cách sử dụng hàm for loop và range()
Sử dụng hàm weekday() để kiểm tra xem ngày đó là ngày trong tuần hay cuối tuần
Nếu đó là một ngày trong tuần, sau đó thêm nó vào số lượng
In số cuối cùng

đó là những ngày nào trong 5 ngày làm việc?

Năm ngày làm việc là năm ngày cộng với bất kỳ ngày nào được coi là ngày không làm việc , chẳng hạn như ngày cuối tuần hoặc ngày lễ. Ví dụ: năm ngày làm việc kể từ Thứ Tư thực sự là tổng số bảy ngày vì bạn phải cộng Thứ Bảy và Chủ Nhật (ngày không làm việc) vào số ngày làm việc.

Làm thế nào để tính ngày làm việc trong gấu trúc?

Một cách để lấy danh sách ngày làm việc giữa hai ngày trong pandas là sử dụng hàm bdate_range() . Cái này là cái gì? .