2017-02-23 2 views
1

私は週末特定の休日除く2つの日付の間時間の数を計算するための非常にクリーンな方法を見つけようとしています。Pythonで週末と休日を除いた2つの日付間の時間数を調べる方法は? BusinessHoursパッケージ

私が知りましたのは、パッケージBusinessHours(https://pypi.python.org/pypi/BusinessHours/1.01)がこれを行うことができるということです。しかし、パッケージの使用方法(実際には構文)や休日の入力方法については何も教えていませんでした。 パッケージの元のコード(https://github.com/dnel/BusinessHours/blob/master/BusinessHours.py)が見つかりましたが、それでも確実ではありません。

date1 = pd.to_datetime('2017-01-01 00:00:00') 
date2 = pd.to_datetime('2017-01-22 12:00:00') 
import BusinessHour 
gethours(date1, date2, worktiming=[8, 17], weekends=[6, 7]) 

それでも、私は入力の休日をすることができます: 私はそれがこのようなものになることができると思いますか?そしてもし私が何をすれば私はちょうどworktimingworktiming=[0,23]に調整していますか?

誰でもこのパッケージの使い方を知っていれば教えてください。それは有り難いです。

P/S:私は2つの日付(busday_count)間のビジネスの日数を取得するためにnumpyの中のコマンドを知っていたが、時間で結果を取得するためのコマンドはありません。タスクを実行できるpandasまたはnumpyの他のコマンドも歓迎されます。 ありがとう

答えて

0

このパッケージ1.2の最新のピップインストールでは、51行目に "extday"を "extradays"に変更する必要があるというエラーがあります。

私はあまりにも、営業時間と営業日を計算するための実行可能なコードをインターネットで精査しています。このパッケージにはちょっとしたピンチがありましたが、起動して起動するとうまく動作します。

これは私が私のノートに持っているものです。

#import BusinessHours 
from BusinessHours import BusinessHours as bh 
import numpy as np 
import pandas as pd 
from pandas import Series, DataFrame 

date1 = pd.to_datetime('2017-01-01 00:00:00') 
date2 = pd.to_datetime('2017-01-22 12:00:00') 
bh(date1, date2, worktiming=[8, 17], weekends=[6, 7]).gethours() 

これは、ソースコードでもありました:

''' 
holidayfile - A file consisting of the predetermined office holidays. 
Each date starts in a new line and currently must only be in the format 
dd-mm-yyyy 
''' 

希望これは

0

業務時間と呼ばれるこのパッケージを試してみてくださいに役立ちますPyPiで

例コード

from business_duration import businessDuration 
import pandas as pd 
from datetime import time,datetime 
import holidays as pyholidays 

startdate = pd.to_datetime('2017-01-01 00:00:00') 
enddate = pd.to_datetime('2017-01-22 12:00:00') 

holidaylist = pyholidays.Australia() 
unit='hour' 
#By default Saturday and Sunday are excluded 

print(businessDuration(startdate,enddate,holidaylist=holidaylist,unit=unit)) 
Output: 335.99611 

holidaylist: 
{datetime.date(2017, 1, 1): "New Year's Day", 
datetime.date(2017, 1, 2): "New Year's Day (Observed)", 
datetime.date(2017, 1, 26): 'Australia Day', 
datetime.date(2017, 3, 6): 'Canberra Day', 
datetime.date(2017, 4, 14): 'Good Friday', 
datetime.date(2017, 4, 15): 'Easter Saturday', 
datetime.date(2017, 4, 17): 'Easter Monday', 
datetime.date(2017, 4, 25): 'Anzac Day', 
datetime.date(2017, 6, 12): "Queen's Birthday", 
datetime.date(2017, 9, 26): 'Family & Community Day', 
datetime.date(2017, 10, 2): 'Labour Day', 
datetime.date(2017, 12, 25): 'Christmas Day', 
datetime.date(2017, 12, 26): 'Boxing Day'} 
関連する問題