در این سوال شما باید یک کلاس مدیریت فاکتورهای فروش برای شرکت سجادینه طراحی کنید. در شرکت سجادینه افراد زیادی میتوانند فاکتورهای مالی را ثبت کنند و هر کدام از این افراد تاریخ فاکتور را به یکی از ۶ فرمتی که در جدول پایین آمده ثبت میکنند.
برای مثال یک فاکتور که روز دوم ماه ششم سال ۲۰۲۰ ثبت شود، میتواند طبق یکی از فرمتهای زیر ثبت شود:
| زمانی که در سیستم ثبت میشود | فرمت زمان |
|:------------------:|:------------------:|
| `02/06/2020` | `dd/mm/yyyy` |
| `02/2020/06` | `dd/yyyy/mm` |
| `2020/06/02` | `yyyy/mm/dd` |
| `2020/02/06` | `yyyy/dd/mm` |
| `06/2020/02` | `mm/yyyy/dd` |
| `06/02/2020` | `mm/dd/yyyy` |
شما باید کلاس `FactorHandler` را در این فایل کامل کنید به طوری که سه تابع زیر عملکردهای خواسته شده را داشته باشند (عملکرد تابع `__init__` اهمیت ندارد).
```python solution.py
class FactorHandler:
def __init__(self):
pass
def add_factor(self, time_format, time, value):
pass
def remove_all_factors(self, time_format, time):
pass
def get_sum(self, time_format, start_time, finish_time):
pass
```
<details class="green">
<summary>
تابع `add_factor`
</summary>
این تابع به ترتیب سه ورودی `time_format` و `time` و `value` را ورودی میگیرد. مقدار `time_format` یکی از ۶ رشته جدول بالا است و `time` تاریخ ثبت فاکتور بر حسب فرمت داده شده است. مقدار `value` هم، هزینه فروش فاکتور داده شده برای آن تاریخ را مشخص میکند.
</details>
<details class="green">
<summary>
تابع `remove_all_factors`
</summary>
این تابع به ترتیب سه ورودی `time_format` و `time` را ورودی میگیرد که هر دویشان مانند تابع `add_factor` هستند؛ این تابع تمام فاکتورهایی که در تاریخ داده شده ثبت شدهاند را از لیست فاکتورها حذف میکند.
</details>
<details class="green">
<summary>
تابع `get_sum`
</summary>
این تابع به ترتیب سه ورودی `time_format` و `start_time` و `finish_time` را ورودی میگیرد و جمع هزینه فاکتورهایی که از تاریخ `start_time` تا `finish_time` ثبتشدهاند (شامل خود این دو تاریخ) را برمیگرداند.
</details>
در همه توابع تضمین میشود که `time` حتما بر حسب فرمت `time_format` است. توجه کنید که هیچ یک از توابع بالا را نباید استاتیک تعریف کنید.
## نمونه
```python terminal terminal
>>> fh = FactorHandler()
>>> fh.add_factor("dd/mm/yyyy", "02/10/2019", 10)
>>> fh.add_factor("dd/mm/yyyy", "03/10/2019", 20)
>>> fh.add_factor("dd/mm/yyyy", "03/10/2019", 30)
>>> fh.add_factor("dd/mm/yyyy", "05/10/2019", 5)
>>> fh.get_sum("yyyy/dd/mm", "2019/02/10", "2019/03/10")
60
>>> fh.remove_all_factors("mm/dd/yyyy", "10/03/2019")
>>> fh.get_sum("yyyy/dd/mm", "2019/02/10", "2019/05/10")
15
```
## نکات
+ میتوانید فایل اولیه این سوال را از [این لینک](/problemset/assignments/4367/download_problem_initial_project/76277/) دریافت کنید.
+ تابع `get_sum` نباید مقداری را چاپ کند، بلکه باید مقادیر مورد نظر را بازگرداند.
## نحوه ارسال
شما باید کلاس `FactorHandler` موجود در فایل `solution.py` را تکمیل و سپس این فایل را ارسال کنید.