2017-04-12 2 views
-1

날짜/시간 변수에 시간 기간을 추가하고 싶습니다. CSV 파일에서 재생 시간을 읽습니다. 재생 시간 형식은 0:29:40 또는 1:29:40입니다. 이것을 datetime 변수에 추가하면 잘못된 형식을 제외하고 나타납니다. 이 형식을 사용하여 재생 시간을 어떻게 추가 할 수 있습니까? 이전에는 "6"또는 "7"과 같은 간단한 정수로 지속 시간을 가졌지 만 현재 형식은 "0:29:40"입니다.이 형식을 수용하기 위해 코드를 변경하는 방법을 모르겠습니다. C에서 addHours()를 사용하여 시간을 추가하십시오.

는 이전에 나는 당신이 이중으로 분석 할 필요가 없습니다,이

double hours = Convert.ToDouble(row.Cells[2].Value.ToString()); 
      DateTime newdate = finaldate.AddHours(hours); 

row.Cells[2].Value.ToString()이 감사 CSV

어떤 도움의 값을 읽어 주셔서 감사

+0

셀 [2] 값은 무엇입니까? – Steve

+1

어떻게'0 : 29 : 40'이 두 배로 커버 될 것으로 예상 했습니까? –

+0

값을 TimeSpan에 추가하여 변환 한 다음 DateTime 인스턴스에 추가해야 할 수도 있습니까? –

답변

2

을 당신은 제대로 문자열을 구문 분석하는 TimeSpan.Parse() 또는 TimeSpan.ParseExact() 방법을 사용해야 할 것 다음 단순히 기존에 그 TimeSpan 결과를 추가됩니다 그리고 TimeSpan을 가진 좋은 점은 당신이 단지 DateTime에 추가 할 수있다 날짜 : 명시 적 시간의 각 값이 무엇을 나타내는 지 지정해야하는 경우

var time = TimeSpan.Parse(row.Cells[2].Value.ToString()); 
DateTime newDate = finalDate.Add(time); 

는 다음 TimeSpan.ParseExact() 방법은 당신이 지정하는 형식 문자열을 제공 할 수 있습니다 :

// This will assume that 1:29:40 is hours, minutes, and seconds 
var time = TimeSpan.ParseExact(row.Cells[2].Value.ToString(), @"h\:m\:s", null); 
3

을하고 있었다. 구문 분석하여 TimeSpan. 다음과 같음 :

var source = "0:29:40"; 
var ts = TimeSpan.Parse(source); 

이제 ts은 시간 범위입니다.

DateTime newdate = finaldate + ts; 
관련 문제