|
@@ -101,54 +101,56 @@ namespace TEAMModelOS.SDK.Models.Service.BI
|
|
|
public static List<double> weekDoubleMerge(List<List<double>> doubles, DateTimeOffset dateTime)
|
|
|
{
|
|
|
List<double> weekTrend = new();
|
|
|
- int year = dateTime.Year;
|
|
|
- int dayOfweek = (int)DateTimeOffset.Parse($"{year}-1-1").DayOfWeek;
|
|
|
- int currentTime = dateTime.DayOfYear / 7 + 1;
|
|
|
- int currentTime1 = dateTime.DayOfYear / 7;
|
|
|
- int days = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? days = 366 : days = 365;
|
|
|
+ if (doubles.Count > 0)
|
|
|
+ {
|
|
|
+ int year = dateTime.Year;
|
|
|
+ int dayOfweek = (int)DateTimeOffset.Parse($"{year}-1-1").DayOfWeek;
|
|
|
+ int currentTime = dateTime.DayOfYear / 7 + 1;
|
|
|
+ int currentTime1 = dateTime.DayOfYear / 7;
|
|
|
+ int days = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) ? days = 366 : days = 365;
|
|
|
|
|
|
- var bmatrix = DenseMatrix.OfColumns(doubles);
|
|
|
+ var bmatrix = DenseMatrix.OfColumns(doubles);
|
|
|
|
|
|
- //开学第一周周内开课
|
|
|
- if (dayOfweek == 0)
|
|
|
- {
|
|
|
- dayOfweek = 7;
|
|
|
- }
|
|
|
- //第一周多少天
|
|
|
- var dd = 7 - dayOfweek + 1;
|
|
|
- //一年有几周
|
|
|
- int sweeks = days / 7;
|
|
|
- //查询天数
|
|
|
- int dayYear = 0;
|
|
|
- if (currentTime > 0)
|
|
|
- {
|
|
|
- for (int i = 0; i < currentTime; i++)
|
|
|
+ //开学第一周周内开课
|
|
|
+ if (dayOfweek == 0)
|
|
|
{
|
|
|
- if (i == 0)
|
|
|
- {
|
|
|
- var bsum = bmatrix.SubMatrix(dayYear, dd, 0, bmatrix.ColumnCount).ColumnSums().Sum();
|
|
|
- dayYear += dd;
|
|
|
- //weeks.Add(i, bsum);
|
|
|
- weekTrend.Add(bsum);
|
|
|
- }
|
|
|
- else
|
|
|
+ dayOfweek = 7;
|
|
|
+ }
|
|
|
+ //第一周多少天
|
|
|
+ var dd = 7 - dayOfweek + 1;
|
|
|
+ //一年有几周
|
|
|
+ int sweeks = days / 7;
|
|
|
+ //查询天数
|
|
|
+ int dayYear = 0;
|
|
|
+ if (currentTime > 0)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < currentTime; i++)
|
|
|
{
|
|
|
- var bsum = bmatrix.SubMatrix(dayYear, 7, 0, bmatrix.ColumnCount).ColumnSums().Sum();
|
|
|
- dayYear += 7;
|
|
|
- //weeks.Add(i, bsum);
|
|
|
- weekTrend.Add(bsum);
|
|
|
+ if (i == 0)
|
|
|
+ {
|
|
|
+ var bsum = bmatrix.SubMatrix(dayYear, dd, 0, bmatrix.ColumnCount).ColumnSums().Sum();
|
|
|
+ dayYear += dd;
|
|
|
+ //weeks.Add(i, bsum);
|
|
|
+ weekTrend.Add(bsum);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var bsum = bmatrix.SubMatrix(dayYear, 7, 0, bmatrix.ColumnCount).ColumnSums().Sum();
|
|
|
+ dayYear += 7;
|
|
|
+ //weeks.Add(i, bsum);
|
|
|
+ weekTrend.Add(bsum);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ //最后一周是否有余
|
|
|
+ int stary = days - dayYear;
|
|
|
+ if (stary > 0 && stary < 7)
|
|
|
+ {
|
|
|
+ var bsum = bmatrix.SubMatrix(dayYear, stary - 1, 0, bmatrix.ColumnCount).ColumnSums().Sum();
|
|
|
+ //weeks.Add((sweeks + 1), bsum);
|
|
|
+ weekTrend.Add(bsum);
|
|
|
+ }
|
|
|
}
|
|
|
- //最后一周是否有余
|
|
|
- int stary = days - dayYear;
|
|
|
- if (stary > 0 && stary < 7)
|
|
|
- {
|
|
|
- var bsum = bmatrix.SubMatrix(dayYear, stary - 1, 0, bmatrix.ColumnCount).ColumnSums().Sum();
|
|
|
- //weeks.Add((sweeks + 1), bsum);
|
|
|
- weekTrend.Add(bsum);
|
|
|
- }
|
|
|
-
|
|
|
return weekTrend;
|
|
|
}
|
|
|
|