日時オブジェクトの使用方法を理解するのに苦労しています。datetime.date インスタンスを辞書のキーとして使用したいと考えています。次に、datetime.delta を使用して、指定された範囲内の日付を返すことができるようにしたいと考えています。
私の最初の難問は、辞書に入力するオブジェクトを作成するときです。
class Work_day():
'''input a workday , date and hours worked'''
def __init__(self, date, hours, rate):
self.date = datetime.date()
self.hours = hours
self.rate = rate
self.date を datetime.date オブジェクトにしたいのですが、datetime.date は 3 つの引数 (年、月、日) を取るので、def_init_ 引数 'date' の正しい構文は何ですか?
次に、Work_day クラスでの記述方法を変更すると、たとえば add_work_day() メソッドなどの Timesheet クラスでインスタンスを作成するときに、コードを変更する必要があると想定します。
class Timesheet():
'''Represent a collection of workdays'''
def __init__(self):
self.timesheet = {}
def add_work_day(self, date, hours,rate):
'''adds a record of a work day into the timesheet dictionary'''
day = Work_day(date, hours, rate)
if day.date in self.timesheet:
print("There is already an entry for this day. ")
else:
self.timesheet[day.date] = hours, rate
私はPythonのドキュメントと精練の本を研究してきましたが、私はそれを手に入れていません! 助けが要る。
タイムシートにある範囲の稼働日を出力するメソッドもあります。日付キーを単純なintにサブしたときに機能させました。これは (''' ''') であり、その下にある datetime delta での不正な試みが行われています
def show_days(self):
'''shows a user defined range of dates and the total pay for that period'''
pp = pprint.PrettyPrinter()
date_from = input("From date: ")
date_to = input("To date: ")
t = self.timesheet
total = 0
'''for dates in range(date_from, date_to + 1):
if dates in t:
total += self.sum_day(dates)
pp.pprint((dates, t[dates)])
print("Total £", total)'''
date = date_start = datetime.date(date_from)
date_end = datetime.date(date_to)
while date <= date_end:
if date in t:
print(date, t[dates])
date += datetime.timedelta(days=1)
誰かがこれについて私に話してくれる忍耐を見つけてくれることを願っています. 乾杯。