diff --git a/reports/fixed_range.py b/reports/fixed_range.py index f6cdfa6638e8ad368bf58bd89403471083d9a0ae..885c2320fa404526a6626c85a9067760fa2370fb 100644 --- a/reports/fixed_range.py +++ b/reports/fixed_range.py @@ -2,7 +2,7 @@ from datetime import datetime as dt from typing import List import pandas as pd -from py_jftech import component, autowired, get_config, format_date +from py_jftech import component, autowired, get_config, format_date, filter_weekend from api import RoboReportor @@ -29,8 +29,10 @@ class FixedRangeReport(RoboReportor): if not datas.empty: result = pd.DataFrame(columns=datas.columns) for range in self.range_dates: - row_name = f"{format_date(range['start'])}~{format_date(range['end'])}" - result.loc[row_name] = datas[range['start']:range['end']].values[-1] / datas[range['start']:range['end']].values[0] - 1 + start = filter_weekend(range['start']) + end = filter_weekend(range['end']) + row_name = f"{format_date(start)}~{format_date(end)}" + result.loc[row_name] = datas[start:end].values[-1] / datas[start:end].values[0] - 1 result = round(result, 4) * 100 result.reset_index(inplace=True) result.rename(columns={'index': 'range-date'}, inplace=True) diff --git a/reports/relative_range.py b/reports/relative_range.py index 5d49f18594eae408ff8d40c2c289dd393ccd3fbd..ba47a6c3df4f18bc66bda4781c7f69a27eced3ea 100644 --- a/reports/relative_range.py +++ b/reports/relative_range.py @@ -3,7 +3,7 @@ from typing import List import pandas as pd from dateutil.relativedelta import relativedelta -from py_jftech import component, autowired, get_config, format_date +from py_jftech import component, autowired, get_config, format_date, filter_weekend from api import RoboReportor @@ -32,9 +32,10 @@ class RelativeRangeReport(RoboReportor): for range in self.range_dates: kwargs = range.copy() del kwargs['name'] - start = max_date - relativedelta(**kwargs) - row_name = f"{range['name']}({format_date(start)}~{format_date(max_date)})" - result.loc[row_name] = datas[start:max_date].values[-1] / datas[start:max_date].values[0] - 1 + start = filter_weekend(max_date - relativedelta(**kwargs)) + end = filter_weekend(max_date) + row_name = f"{range['name']}({format_date(start)}~{format_date(end)})" + result.loc[row_name] = datas[start:end].values[-1] / datas[start:end].values[0] - 1 result = round(result, 4) * 100 result.reset_index(inplace=True) result.rename(columns={'index': 'range-date'}, inplace=True)