[쥔장] ==========================================
아는 내용이지만 정리가 잘 되어있어서 다른 분들에게도 도움이 되고, 나에게도 나중에 도움이 될 수도 있어 일단은 퍼왔다.
=================================================
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시간을 넘어 갑니다.”);
3. 두 날짜간의 미래와 과거 혹은 같은날 여부를 확인하기 위한 코드
이 비교는 단순비교로 두개의 날짜를 비교해서 값을 return
한다.
|
기준값(t1) 보다 비교값(t2)가 더 크면, return -1; |
|
기준값(t1) 보다 비교값(t2)가 같으면, return 0; |
|
기준값(t1) 보다 비교값(t2)가 더 작으면, return 1; |
|
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) |
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. 특정일에서 특정일 더하거나 빼거나 해서 날짜 구하는 법 |
51 |
오늘을 기준으로 날짜를 30일 더하거나 빼는 방법 |
53 |
30일 더하는 방법 : DateTime.Today.AddDays(30).ToString( "yyyyMMdd" ); |
54 |
30일 빼는 방법 : DateTime.Today.AddDays(-30).ToString( "yyyyMMdd" ); |
56 |
4. 두 날짜 사이의 간격을 구하는 방법 |
62 |
DateTime t1 = DateTime.Now; |
63 |
DateTime t2 = DateTime.Now; |
64 |
t1 = DateTime.Parse(txt_StartDay.Text); |
65 |
t2 = DateTime.Parse(txt_EndDay.Text); |
68 |
TimeSpan t3 = t2.Subtract(t1); |
71 |
TimeSpan t4 = t2 - t1; |
77 |
만약 t1 의 날짜가 "2004-03-18" 이고 t2 의 날짜가 "2004-03-01" 이라면 -17을 리턴함. |
1. 일단 txt를 날짜 형식으로 변환하는 방법 |
05 |
DateTime convDate = DateTime.Now; |
06 |
string strDate = "2004-03-18" ; |
07 |
convDate = DateTime.Parse(strDate); |
09 |
이 형변환을 통해 나중에 날짜 비교를 할때 사용 |