2014-02-25 6 views
1

csv 파일에서 날짜/시간 및 데이터를 읽고 라인 차트에 저장합니다. 내 날짜/시간 문자열은 1-1-2014 21:55:42 또는 18-02-2014 00:00:00이며 실제로 첫 번째 항목이며 몇 시간 동안 데이터가 있습니다.차트가 X 축에서 잘못된 날짜를 표시합니다.

먼저 chartArea X 축의 lablestyle을 적절한 형식 ("d-M-yyyy HH:mm:ss")으로 설정합니다.

그런 다음 실제 날짜 문자열을 위의 형식과 동일한 형식 인 DateTime 형식으로 구문 분석합니다 (d-M-yyyy HH:mm:ss). 그리고 차트에 데이터를 추가하십시오.

enter image description here

나는 나의 날짜가 정확한지를 확인하십시오 enter image description here

그리고 내 코드 :

개인 무효 button2_Click_1 (개체 보낸 사람, EventArgs입니다 전자) { 문자열 라인; char [] 구분 기호 = { ';', ',', '|' };

 chart1.Series["Series1"].XValueType = ChartValueType.Time; 

     chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "d-M-yyyy HH:mm:ss"; 


     chart1.Series["Series1"].Points.Clear(); 


     using (System.IO.StreamReader sr = new System.IO.StreamReader(filename)) 
     { 

      while (!sr.EndOfStream) 
      { 
       line = sr.ReadLine(); 
       DateTime newDateTime = new DateTime(); 

       string[] part = line.Split(delimiters); 

       Console.WriteLine(part[0]); 

       newDateTime = DateTime.ParseExact(
        part[0], 
        "d-M-yyyy HH:mm:ss", 
        CultureInfo.InvariantCulture 
        ); 

       chart1.Series["Series1"].Points.AddXY(newDateTime, part[5]); 

      } 

     } 
     chart1.Refresh(); 
    } 
+0

newdatetime 코드에서 무엇 :이

chart1.Series["Series1"].Points.AddXY(newDateTime, part[5]); 

:

이 교체? 정확한 날짜입니까? 어쩌면 그 파일이나 뭔가에 기록하십시오. – Henno

답변

2

문제 : 당신은 d-M-yyyy HH:mm:ssX-Axis에 대한 사용자 정의 형식을 설정하지만 당신은 그냥 포맷없이 datetime를 제공하고 있습니다.

chart1.Series["Series1"].Points.AddXY(
    newDateTime.ToString("d-M-yyyy HH:mm:ss"), part[5]); 
+0

굉장히 감사합니다. 왜 다시 포맷해야하는지에 대해 자세히 설명해 주시겠습니까? labelStyle 및 newDateTime 변수의 서식을 이미 지정했습니다. 제가 보여 주었 듯이, 제 시리즈에 추가하기 전에 제가 준 것과 정확히 같은 형식을 가지고 있습니다. – Madmenyo

관련 문제