@@ -51,18 +51,44 @@ const hours: number[] = [];
5151
5252isLoaded .value = false ;
5353
54- function convertTimIntervalToObject(timeInterval : string , domain : string ): DomainsInterval | null {
54+ function convertTimIntervalToObject(
55+ timeInterval : string ,
56+ domain : string ,
57+ ): DomainsInterval [] | null {
5558 const array = timeInterval .split (' -' );
5659 const time1 = array [0 ].split (' :' );
5760 const time2 = array [1 ].split (' :' );
58- // добавить подсчет, если в разных часах интервал
5961 if (time1 [0 ] == time2 [0 ]) {
60- return {
61- hour: Number (time1 [0 ]),
62+ return [
63+ {
64+ hour: Number (time1 [0 ]),
65+ summary:
66+ convertStringTimeIntervalToSeconds (array [1 ]) -
67+ convertStringTimeIntervalToSeconds (array [0 ]),
68+ domain: domain ,
69+ },
70+ ];
71+ } else {
72+ const arr = [];
73+ const firstPart1 = array [0 ];
74+ const firstPart2 = ` ${time1 [0 ]}:59:59 ` ;
75+ arr .push ({
76+ hour: Number (firstPart1 [0 ]),
6277 summary:
63- convertStringTimeIntervalToSeconds (array [1 ]) - convertStringTimeIntervalToSeconds (array [0 ]),
78+ convertStringTimeIntervalToSeconds (firstPart2 ) -
79+ convertStringTimeIntervalToSeconds (firstPart1 ),
6480 domain: domain ,
65- };
81+ });
82+ const secondPart1 = ` ${time2 [0 ]}:00:00 ` ;
83+ const secondPart2 = ` ${time2 [0 ]}:${time2 [1 ]}:${time2 [2 ]} ` ;
84+ arr .push ({
85+ hour: Number (secondPart1 [0 ]),
86+ summary:
87+ convertStringTimeIntervalToSeconds (secondPart2 ) -
88+ convertStringTimeIntervalToSeconds (secondPart1 ),
89+ domain: domain ,
90+ });
91+ return arr ;
6692 }
6793 return null ;
6894}
@@ -77,12 +103,14 @@ function fillData(timeIntervalList: TimeInterval[]) {
77103 intervals .forEach (array => {
78104 const i = array .intervals ;
79105 i .forEach (time => {
80- const obj = convertTimIntervalToObject (time , domain );
81- if (obj != null ) {
82- const existDomain = intervalsObj .find (x => x .domain == domain && x .hour == obj .hour );
83- if (existDomain != undefined ) {
84- existDomain .summary += obj .summary ;
85- } else intervalsObj .push (obj );
106+ const objs = convertTimIntervalToObject (time , domain );
107+ if (objs != null && objs .length > 0 ) {
108+ objs .forEach (obj => {
109+ const existDomain = intervalsObj .find (x => x .domain == domain && x .hour == obj .hour );
110+ if (existDomain != undefined ) {
111+ existDomain .summary += obj .summary ;
112+ } else intervalsObj .push (obj );
113+ });
86114 }
87115 });
88116 });
0 commit comments