根据一个二维字符串的数组:string[,] ss = new string[5, 3],以ss[0,0]的日期为准,求出属于该日期的本周以内的工作日(周一至周五,数组中是不会有存在周六、日的数据的)的以下两个数据:
一、ss[X,1]这列数据的本周第一个开始的日期的B值;
二、ss[X,2]这列数据的最高值。假设有以下两个二维数组进行举例说明一下:
string[5, 3] ss1
[0, 0] "2011-04-15"
[0, 1] "8.20"
[0, 2] "8.35"
[1, 0] "2011-04-14"
[1, 1] "8.30"
[1, 2] "8.30"
[2, 0] "2011-04-13"
[2, 1] "8.20"
[2, 2] "8.31"
[3, 0] "2011-04-12"
[3, 1] "8.13"
[3, 2] "8.33"
[4, 0] "2011-04-11"
[4, 1] "8.51"
[4, 2] "8.54" 根据ss1的数据,求得本周的结果的两个数据是:最高值是ss1[4, 2]=8.54,B值是2011-04-11的ss1[4, 1]=8.51
温馨提示:本周五个工作日的数据都有。string[5, 3] ss2
[0, 0] "2011-04-15"
[0, 1] "11.91"
[0, 2] "12.21"
[1, 0] "2011-04-14"
[1, 1] "11.90"
[1, 2] "12.01"
[2, 0] "2011-04-13"
[2, 1] "11.82"
[2, 2] "12.29"
[3, 0] "2011-04-12"
[3, 1] "11.90"
[3, 2] "12.36"
[4, 0] "2011-04-08"
[4, 1] "11.68"
[4, 2] "11.85" 根据ss2的数据,求得本周的结果的两个数据是:最高值是ss2[3, 2]=12.36,B值是2011-04-12的ss2[3, 1]=11.90。
温馨提示:2011-04-08不是属于2011-04-15日期的本周以内的数据,而本周只有四天的数据。望诸位高手帮忙想一个最佳算法,谢谢!
一、ss[X,1]这列数据的本周第一个开始的日期的B值;
二、ss[X,2]这列数据的最高值。假设有以下两个二维数组进行举例说明一下:
string[5, 3] ss1
[0, 0] "2011-04-15"
[0, 1] "8.20"
[0, 2] "8.35"
[1, 0] "2011-04-14"
[1, 1] "8.30"
[1, 2] "8.30"
[2, 0] "2011-04-13"
[2, 1] "8.20"
[2, 2] "8.31"
[3, 0] "2011-04-12"
[3, 1] "8.13"
[3, 2] "8.33"
[4, 0] "2011-04-11"
[4, 1] "8.51"
[4, 2] "8.54" 根据ss1的数据,求得本周的结果的两个数据是:最高值是ss1[4, 2]=8.54,B值是2011-04-11的ss1[4, 1]=8.51
温馨提示:本周五个工作日的数据都有。string[5, 3] ss2
[0, 0] "2011-04-15"
[0, 1] "11.91"
[0, 2] "12.21"
[1, 0] "2011-04-14"
[1, 1] "11.90"
[1, 2] "12.01"
[2, 0] "2011-04-13"
[2, 1] "11.82"
[2, 2] "12.29"
[3, 0] "2011-04-12"
[3, 1] "11.90"
[3, 2] "12.36"
[4, 0] "2011-04-08"
[4, 1] "11.68"
[4, 2] "11.85" 根据ss2的数据,求得本周的结果的两个数据是:最高值是ss2[3, 2]=12.36,B值是2011-04-12的ss2[3, 1]=11.90。
温馨提示:2011-04-08不是属于2011-04-15日期的本周以内的数据,而本周只有四天的数据。望诸位高手帮忙想一个最佳算法,谢谢!
DateTime dt = DateTime.Parse(ss[0, 0]);
DateTime[] temp = new DateTime[5];
for (int i = 0; i < 5; i++)
{
temp[i] = dt.AddDays(-(int)dt.DayOfWeek + i + 1);
}
double B = 0, max = 0;
for (int i = 0; i < 5; i++)
{
if (Array.IndexOf(temp, DateTime.Parse(ss[i, 0])) > -1)
{
if (double.Parse(ss[i, 2]) > max)
{
max = double.Parse(ss[i, 2]);
B = double.Parse(ss[i, 1]);
}
}
}
Console.WriteLine(B);
Console.WriteLine(max);