Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนฟังก์ชัน Python เพื่อคำนวณจำนวนวันทำการทั้งหมดจากช่วงวันที่เริ่มต้นและสิ้นสุด


สมมติว่า คุณมี date_range ของวันที่และผลลัพธ์สำหรับจำนวนวันทำการทั้งหมดคือ

Dates are:
DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-06',
               '2020-01-07', '2020-01-08', '2020-01-09', '2020-01-10',
               '2020-01-13', '2020-01-14', '2020-01-15', '2020-01-16',
               '2020-01-17', '2020-01-20', '2020-01-21', '2020-01-22',
               '2020-01-23', '2020-01-24', '2020-01-27', '2020-01-28',
               '2020-01-29', '2020-01-30', '2020-01-31'],
               dtype='datetime64[ns]', freq='B')
Total number of days: 23

โซลูชันที่ 1

  • กำหนดฟังก์ชันเป็น business_days()

  • ตั้งค่า pd.bdate_range() ฟังก์ชันเริ่มต้นเป็น '2020-01-01' และสิ้นสุดเป็น '2020-02-02' และบันทึกเป็นวันที่

dates = pd.bdate_range('2020-01-01','2020-02-02')
  • คำนวณจำนวนวันโดยใช้ len(dates)

len(dates)

ตัวอย่าง

มาตรวจสอบรหัสต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

import pandas as pd
def business_days():
   dates = pd.bdate_range('2020-01-01','2020-02-02')
   print("Total number of days:",len(dates))
business_days()

ผลลัพธ์

Total number of days: 23

โซลูชันที่ 2

  • กำหนดฟังก์ชัน

  • ตั้งค่า pd.bdate_range() ฟังก์ชันเริ่มต้นเป็น '2020-01-01' และสิ้นสุดเป็น '2020-02-02' และบันทึกเป็นวันที่

dates = pd.bdate_range('2020-01-01','2020-02-02')
  • ตั้งค่าให้เป็น 0 และสร้างสำหรับลูปเพื่อเข้าถึงค่าทั้งหมดจากวันที่และเพิ่มค่าการนับเอง 1

count = 0
   for i in dates:
      count = count + 1
  • สุดท้ายให้พิมพ์นับ

ตัวอย่าง

import pandas as pd
def business_days():
   dates = pd.bdate_range('2020-01-01','2020-02-02')
   count = 0
   for i in dates:
      count = count + 1
   print("Total number of days:",count)
business_days()

ผลลัพธ์

Total number of days: 23