public void SetData(zaitun.Data.SeriesData data,
     zaitun.Data.SeriesVariables independentVariables)
 {
     foreach (zaitun.Data.SeriesVariable var in independentVariables)
     {
         DataGridViewTextBoxColumn clm = new DataGridViewTextBoxColumn();
         DataGridViewCellStyle dataGridViewCellStyle1 = new DataGridViewCellStyle();
         DataGridViewCell cell = new zaitun.GUI.ValidatedTextBoxCell();
         dataGridViewCellStyle1.NullValue = null;
         clm.DefaultCellStyle = dataGridViewCellStyle1;
         clm.CellTemplate = cell;
         clm.HeaderText = var.VariableName;
         clm.Name = "clm" + var.VariableName;
         clm.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
         this.grdValues.Columns.Add(clm);
     }
     this.time = getForecastedTime(data);
     this.grdValues.RowCount = this.forcastingStep;
     for (int i = 0; i < this.forcastingStep; i++)
     {
         this.grdValues.Rows[i].HeaderCell.Value = time[i];
     }
     this.testValues = new double[independentVariables.Count, this.forcastingStep];
 }
        private string[] getForecastedTime(zaitun.Data.SeriesData data)
        {
            string[] result = new string[this.forcastingStep];

            DateTime currentDate = new DateTime();

            switch (data.Frequency)
            {
                case zaitun.Data.SeriesData.SeriesFrequency.Annual:
                    for (int i = 0; i < this.forcastingStep; i++)
                    {
                        currentDate = data.EndDate.AddYears(i + 1);
                        result[i] = currentDate.Year.ToString();
                    }
                    break;
                case zaitun.Data.SeriesData.SeriesFrequency.SemiAnnual:
                    for (int i = 0; i < this.forcastingStep; i++)
                    {
                        currentDate = data.EndDate.AddMonths(6 * (i + 1));
                        result[i] = "Pertengahan " + (currentDate.Month / 2) + " " +
                            currentDate.Year.ToString();
                    }
                    break;
                case zaitun.Data.SeriesData.SeriesFrequency.Quarterly:
                    for (int i = 0; i < this.forcastingStep; i++)
                    {
                        currentDate = data.EndDate.AddMonths(3 * (i + 1));
                        result[i] = "Triwulan " + (currentDate.Month / 3) + " " +
                            currentDate.Year.ToString();
                    }
                    break;
                case zaitun.Data.SeriesData.SeriesFrequency.Monthly:
                    for (int i = 0; i < this.forcastingStep; i++)
                    {
                        currentDate = data.EndDate.AddMonths(i + 1);
                        result[i] = zaitun.Data.SeriesData.ConvertIntToMonth(currentDate.Month)
                            + " " + currentDate.Year.ToString();
                    }
                    break;
                case zaitun.Data.SeriesData.SeriesFrequency.Weekly:
                    for (int i = 0; i < this.forcastingStep; i++)
                    {
                        currentDate = data.EndDate.AddDays(7 * (i + 1));
                        result[i] = currentDate.ToString("dd/MM/yy");
                    }
                    break;
                case zaitun.Data.SeriesData.SeriesFrequency.Daily:
                    for (int i = 0; i < this.forcastingStep; i++)
                    {
                        currentDate = data.EndDate.AddDays(i + 1);
                        result[i] = currentDate.ToString("dd/MM/yy");
                    }
                    break;
                case zaitun.Data.SeriesData.SeriesFrequency.Daily6:
                    {
                        int i = 0;
                        currentDate = data.EndDate;
                        while (i < this.forcastingStep)
                        {
                            currentDate = currentDate.AddDays(1);
                            if (currentDate.DayOfWeek != DayOfWeek.Sunday)
                            {
                                result[i] = currentDate.ToString("dd/MM/yy");
                                i++;
                            }
                        }
                    }
                    break;
                case zaitun.Data.SeriesData.SeriesFrequency.Daily5:
                    {
                        int i = 0;
                        currentDate = data.EndDate;
                        while (i < this.forcastingStep)
                        {
                            currentDate = currentDate.AddDays(1);
                            if (currentDate.DayOfWeek != DayOfWeek.Sunday &&
                                currentDate.DayOfWeek != DayOfWeek.Saturday)
                            {
                                result[i] = currentDate.ToString("dd/MM/yy");
                                i++;
                            }
                        }
                    }
                    break;
                case zaitun.Data.SeriesData.SeriesFrequency.Undated:
                    {
                        for (int i = 0; i < this.forcastingStep; i++)
                        {
                            int current = data.NumberObservations + i + 1;
                            result[i] = current.ToString();
                        }
                    }
                    break;
            }

            return result;
        }