아는 내용이지만 정리가 잘 되어있어서 다른 분들에게도 도움이 되고, 나에게도 나중에 도움이 될 수도 있어 일단은 퍼왔다.
=================================================
1. C#에서 String 형식으로 넘어온 날짜와 시간 데이터를 Datetime 형식으로 형변환 하기
예) string sDate = “20100127″; string sTime = “16:19″;
-> DateTime _sdt = DateTime.ParseExact(sDate + ” ” + sTime, “yyyyMMdd H:mm”, null);
2. 두 날짜 사이의 시간 간격 구하기
예) TimeSpan tDiff = _edt.Subtract(_sdt);
if (tDiff.TotalHours > 1)
Console.Write(”두 날짜 사이의 시간 간격이 1시간을 넘어 갑니다.”);
이 비교는 단순비교로 두개의 날짜를 비교해서 값을 return
한다.
|
|
|
기준값(t1) 보다 비교값(t2)가 더 크면, return -1; |
|
기준값(t1) 보다 비교값(t2)가 같으면, return 0; |
|
기준값(t1) 보다 비교값(t2)가 더 작으면, return 1; |
|
|
|
|
|
MSDN의 내용을 발췌 자료 |
|
|
|
DateTime t1 = new DateTime(100); |
|
DateTime t2 = new DateTime(20); |
|
if (DateTime.Compare(t1, t2) > 0) Console.WriteLine( "t1 > t2" ); |
|
if (DateTime.Compare(t1, t2) == 0) Console.WriteLine( "t1 == t2" ); |
|
if (DateTime.Compare(t1, t2) < 0) Console.WriteLine( "t1 < t2" ); |
|
|
|
실제 날짜를 비교해서 넣으면, |
|
|
|
DateTime t1 = DateTime.Parse( "2004-03-17" ); |
|
DateTime t2 = DateTime.Parse( "2004-03-18" ); |
|
if (DateTime.Compare(t1, t2) > 0) Console.WriteLine( "t1 > t2" ); |
|
if (DateTime.Compare(t1, t2) == 0) Console.WriteLine( "t1 == t2" ); |
|
if (DateTime.Compare(t1, t2) < 0) Console.WriteLine( "t1 < t2" ); |
|
|
|
답은, -1 이 리턴, 표시는 t1< t2 가 화면에 표시 |
|
|
|
또한 현재 날짜와 비교할때 |
|
|
|
if (t1.CompareTo(DateTime.Now) < 0) |
|
{ |
|
// 현재일 보다 빠르면 |
|
} |
|
else |
|
{ |
|
// 현재일 보다 느리면 |
|
} |
|
|
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Exams
{
public partial class EtcTest : Form
{
public EtcTest()
{
InitializeComponent();
}
private void simpleButton1_Click(object sender, EventArgs e)
{
DateTime dt1 = new DateTime(2009, 1, 1);
DateTime dt2 = new DateTime(2009, 2, 1);
DateTime dt3 = new DateTime(2009, 1, 1);
int compare1 = dt1.CompareTo(dt2); //-1 : dt2보다 작음(과거)
int compare2 = dt2.CompareTo(dt1); // 1 : dt1보다 큼(미래)
int compare3 = dt3.CompareTo(dt1); // 0 : dt1과 같음(같은날)
}
}
}
3. 특정일에서 특정일 더하거나 빼거나 해서 날짜 구하는 법 |
50 |
|
51 |
오늘을 기준으로 날짜를 30일 더하거나 빼는 방법 |
52 |
|
53 |
30일 더하는 방법 : DateTime.Today.AddDays(30).ToString( "yyyyMMdd" ); |
54 |
30일 빼는 방법 : DateTime.Today.AddDays(-30).ToString( "yyyyMMdd" ); |
55 |
|
56 |
4. 두 날짜 사이의 간격을 구하는 방법 |
57 |
|
58 |
DateDiff 사용 |
59 |
|
60 |
TimeSpan을 사용하는 두가지 방법 |
61 |
|
62 |
DateTime t1 = DateTime.Now; // 날짜형 변수 t1을 선언. 기본값으로 현재 날짜 설정 |
63 |
DateTime t2 = DateTime.Now; |
64 |
t1 = DateTime.Parse(txt_StartDay.Text); |
65 |
t2 = DateTime.Parse(txt_EndDay.Text); // ex) DateTime t1 = DatTime.Parse("2004-03-18"); |
66 |
|
67 |
// TimeSpan을 쓰는 방법(1) |
68 |
TimeSpan t3 = t2.Subtract(t1); |
69 |
|
70 |
// TimeSpan을 쓰는 방법(2) |
71 |
TimeSpan t4 = t2 - t1; |
72 |
|
73 |
// 위의 날짜차이를 계산하여 int 형식으로 리턴 (t5, t6의 값은 같음) |
74 |
int t5 = t3.Days; |
75 |
int t6 = t4.Days; |
76 |
|
77 |
만약 t1 의 날짜가 "2004-03-18" 이고 t2 의 날짜가 "2004-03-01" 이라면 -17을 리턴함. |
1. 일단 txt를 날짜 형식으로 변환하는 방법 |
04 |
|
05 |
DateTime convDate = DateTime.Now; // 기본값으로 현재 날짜를 넣어 둡니다. |
06 |
string strDate = "2004-03-18" ; // 임의의 날짜값을 받습니다. |
07 |
convDate = DateTime.Parse(strDate); // 스트링 형식의 날짜를 Date 형식으로 바꾸어 놓은 것입니다. |
08 |
|
09 |
이 형변환을 통해 나중에 날짜 비교를 할때 사용 |
10 |
|
[출처] c# 날짜변경(변경,변환,비교)|작성자 사우리