본문 바로가기

C계열/C#

TimeSpan을 이용하여 남은 시간 표시하기

프로그램을 만들다가 시간끼리의 뺄셈을 TimeSpan을 이용하는 것을 인터넷에서 돌아다니다가 알게되었는데 

 

Text형식으로 시간 형식을 받아도 Convert.ToDateTime을 통해 변환됨을 알게 되었다. 

 

예를 들면 아래와 같다.

 

private void TimeGap()
{
	DateTime T1 = Convert.ToDateTime(dateTimePicker1.Text);
	DateTime T2 = Convert.ToDateTime(dateTimePicker2.Text);
                        
	TimeSpan t3 = T2 - T1;
    
    ....
    

문제는 그게 아니라 시간차이를 제대로 계산하기는 하지만 형식이 맘에 들지 않았다.

 

결과값이 3. 02:12:45으로 표기되는데 3일 2시간 12분 45초 남았다고 표기하고 싶었다. 

 

MS에서는 DateTime의 형식을 바꿔주는 몇가지 함수들을 예시와 함께 제공해주지만

 

잘 되지 않아서 나는 Split를 써서 분리했다. 

 

...

	string tt3 = Convert.ToString(t3);

	string[] words= tt3.Split('.', ':');    //.과 :으로 값을 분리한다.
    label1.Text = "기한이 "+words[0] +"일" +words[1]+"시간" +words[2]+"분 남았습니다.";
            
 }

+words[3]을 쓰면 초도 표시가 가능하다.