제가 이곳 저곳을 돌아다니면서 얻은 건데요...저같이 궁금하신분들이 일을것 같아서 올립니다. 날짜데이터를 다룰때 참조하세요~ 1. 일단 txt를 날짜 형식으로 변환하는 방법 DateTime convDate = DateTime.Now; //기본값으로 현재 날짜를 넣어 둡니다. string strDate = "2004-03-18"; //임의의 날짜값을 받습니다. convDate = DateTime.Parse(strDate); // 스트링 형식의 날짜를 Date 형식으로 바꾸어 놓은 것입니다. 이 형변환을 통해 나중에 날짜 비교를 할때 사용하는 거죠... 2. 두 날짜간의 순서 비교 이 비교는 단순비교로 두개의 날짜를 비교해서 값을 리턴해 주는 것으로, 기준값(t1) 보다 비교값(t2)가 더 크면(즉 t1의 날짜가 t2의 날자가 더 나중이면, t1<T2) 리턴, 기준값(t1) 보다 비교값(t2)가 더 작으면(즉 t1의 날짜가 t2의 날자가 더 이전이면, t1>t2) 1을 리턴, 기준값(t1) 보다 비교값(t2)가 같으면(즉 t1의 날짜가 t2의 날자가 같으면, t1=t2) 0을 리턴합니다.
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 { //현재일 보다 느리면... } 3. 특정일에서 특정일 더하거나 빼거나 해서 날짜 구하는 법 오늘을 기준으로 날짜를 30일 더하거나 빼는 방법은... 30일 더하는 방법 : DateTime.Today.AddDays(30).ToString("yyyyMMdd") 30일 빼는 방법 : DateTime.Today.AddDays(-30).ToString("yyyyMMdd")
4. 두 날짜 사이의 간격을 구하는 방법 DateDiff 인가 하는 것이 VB에도 있구, SQL에도 있는 것인데...C'에서는 이렇게 한답니다. (사실은 이것 땜시 공부를 한거죠...ㅎㅎㅎ...) TimeSpan을 사용하는 것인데 두가지 방법이 있습니다. 뭐...같다고도 할 수 있죠... DateTime t1 = DateTime.Now; //날짜형 변수 t1을 선언하는데 기본값으로 현재 날짜를 설정합니다. DateTime t2 = DateTime.Now; //아래부분은 사실 두개의 택스트 박스의 값을 입력 받은 것입니다. t1 = DateTime.Parse(txt_StartDay.Text); // 이 내용은 한줄로도 가능하며...이런 형식입니다. 괜히 길게썼죠?...ㅎㅎㅎ t2 = DateTime.Parse(txt_EndDay.Text); // DateTime t1 = DatTime.Parse("2004-03-18");
//TimeSpan을 쓰는 두가지 방법. 방법(1) TimeSpan t3 = t2.Subtract(t1);
//TimeSpan을 쓰는 두가지 방법. 방법(2) TimeSpan t4 = t2 - t1; //위의 날짜차이를 계산하여 int 형식으로 리턴해 주며 쓰기는 이렇게 씁니다. t5, t6의 값은 같습니다. int t5 = t3.Days; int t6 = t4.Days; 만약 t1의 날짜가 "2004-03-18" 이고 t2의 날짜가 "2004-03-01" 이라면 -17을 리턴해 주겠죠?...아시겠죠?...
기존글주소: http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=8&MAEULNO=5&no=471 |