C#/문법 및 기능

C# 시간 메소드

Link2Me 2016. 1. 15. 00:00

C# 에서 시간을 다루는 메소드가 몇가지 있다.

활용하는 목적이 좀 다르다.


System.Windows.Forms 을 이용하여 타이머를 구동시키는 경우에는 함수가 실행될 때 타이머가 동작하고 함수가 종료되면 타이머를 멈추는 방식이다.

using System.Windows.Forms;
private void MainForm_Load(object sender, EventArgs e)
{
    timer1.Interval = 60000;  // 지정단위는 millisecond
    timer1.Start();   // 다른 방법으로는 timer1.Enabled = true; 라고 하면 된다
}

private void timer1_Tick(object sender, EventArgs e)
{
    //현재 시각을 가져와 time 변수에 할당
    DateTime time = DateTime.Now// 현재 날짜와 시간을 얻는다
    if (time.Hour == 09 && time.Minute == 10)
    {  //time 변수의 시가 09시이고, 분이 10이면 코드 실행
        // 실행할 코드
        timer1.Stop();
    }
}


C#에서 시간에 대한 데이타형은 2종류다.
DateTime과 TimeSpan
DateTime 구조체는 날짜와 시간을 표현한다. 2016년 1월 10일 이렇게 시각을 정할때 사용하고
TimeSpan은 두 시점간의 간격을 경과일과 시분초로 표현하며, 정밀도는 천만분의 1초이다.

시간으로 10일을 더하고 싶으면 TimeSpan.FromDays(10)이렇게 하면 10일을 tick으로 환산하여 계산한다.
// DateTime(년,월,일,시,분,초)
DateTime birthday = new DateTime(1997,04,21,19,05,30);
//시각(DateTime) - 시각 = 시간(TimeSpan)
TimeSpan result = DateTime.Now - birthday;


// 현재 날짜와 시간을 출력하고자 할 경우 출력하는 형태를 지정해서 할 수 있다

DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");


소요(동작)시간 체크하기

System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();  // Stopwatch 객체 생성
sw.Start();
OpenSubtitle(fileName, listView1); // 체크하고 싶은 메소드
sw.Stop();

// 동작시간 출력

MessageBox.Show(sw.Elapsed.ToString());


// 동작시간을 밀리초 단위로 출력

MessageBox.Show(sw.ElapsedMilliseconds.ToString() + " msec");


또다른 소요시간 체크하는 방법

var start = DateTime.Now;
OpenSubtitle(fileName, listView1);
var stop = DateTime.Now - start;
MessageBox.Show("소요시간:" + stop.ToString());

사용자 지정 날짜 및 시간 형식 문자열 MSDN : https://msdn.microsoft.com/ko-kr/library/8kb3ddd4%28v=vs.110%29.aspx




728x90