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
'C# > 문법 및 기능' 카테고리의 다른 글
C# Dictionary 와 comboBox 연결 (0) | 2016.02.08 |
---|---|
C# Directory (폴더) 생성 및 삭제 (0) | 2016.01.16 |
C# 파일 입출력 개념 정리 (0) | 2016.01.05 |
C# int.TryParse (0) | 2015.12.25 |
C# 오버라이딩(Overriding) 개념 이해 (1) | 2015.12.21 |