기간 출력하고자 할때...
# 3) .Net ( Vs 2008 )/C#2010. 2. 18. 13:21
훈스 C#게시판에 올라온 글에 대한 답변을 찾아보던 중,..
VB에 Format(일수, "mm" ) 이란 함수를 호출하면 일자에 맞는 기간을 출력해준다고 한다
예)
399 를 넣으면 "1년 1개월 3일" 이 나온다고 한다.
머리를 조낸 굴려봐도 지원되는 객체는 안보인다..
기간에 해당하는것 하면 TimeSpan이 바로 떠오르는데...
TimeSpan에서 출력해주는 건 전혀 없다.
아래와 같이 직접 구해야 하는듯 하다.
TimeSpan.Zero ~ TimeSpan.FormDays( 일수 ) 만큼에 Tick값으로
DateTime을 생성하면 DateTime의 초기값 1년 1월 1일 ~ 계산되어 만들어진다.
DateTimeOffset객체에서 ToOffSet( TimeSpan ); 메서드를 이용해볼까 했었는데...
이거자체가 DateTime때문에 에러가 뜨게 되므로...
직접 포멧을 지정해야한다.
double day = 399;
DateTimeOffset off = new DateTime(TimeSpan.FromDays( day ).Ticks );
MessageBox.Show(string.Format("{0}년 {1}개월 {2}일", off.Year - 1, off.Month - 1, off.Day - 1));
DateTimeOffset 은 그냥 ... 알게된 객체이므로... 써본다.
http://msdn.microsoft.com/ko-kr/library/system.datetimeoffset_members.aspx
추가적으로 WPF 게시판에 올라왔던 답변을 좀 허접하게 달았던 내용을
다음과 같이 처리한다.
질문내용은 두날짜간에 개월수 차이를 구하여 컬럼으로 표시하고자 하는 부분이었으나
처음 단 답글은 년차를 월에 포함하지 못하는 상황과 약간에 판단착오가 있었다.
이에 대해.. 위 기간 구하는것을 참고하여 아래와 같이 바꾸고 그 답변에 대해 알림형태로 게시판에 남겼다.
DateTime dt = new DateTime(2001, 2, 1);
DateTime dt2 = new DateTime( Math.Abs( ( new DateTime(2002, 2, 27).Subtract( dt ).Ticks ) ) );
MessageBox.Show(( ((dt2.Year-1) * 12) + ( dt2.Month ) ).ToString());
VB에 Format(일수, "mm" ) 이란 함수를 호출하면 일자에 맞는 기간을 출력해준다고 한다
예)
399 를 넣으면 "1년 1개월 3일" 이 나온다고 한다.
머리를 조낸 굴려봐도 지원되는 객체는 안보인다..
기간에 해당하는것 하면 TimeSpan이 바로 떠오르는데...
TimeSpan에서 출력해주는 건 전혀 없다.
아래와 같이 직접 구해야 하는듯 하다.
TimeSpan.Zero ~ TimeSpan.FormDays( 일수 ) 만큼에 Tick값으로
DateTime을 생성하면 DateTime의 초기값 1년 1월 1일 ~ 계산되어 만들어진다.
DateTimeOffset객체에서 ToOffSet( TimeSpan ); 메서드를 이용해볼까 했었는데...
이거자체가 DateTime때문에 에러가 뜨게 되므로...
직접 포멧을 지정해야한다.
double day = 399;
DateTimeOffset off = new DateTime(TimeSpan.FromDays( day ).Ticks );
MessageBox.Show(string.Format("{0}년 {1}개월 {2}일", off.Year - 1, off.Month - 1, off.Day - 1));
DateTimeOffset 은 그냥 ... 알게된 객체이므로... 써본다.
http://msdn.microsoft.com/ko-kr/library/system.datetimeoffset_members.aspx
추가적으로 WPF 게시판에 올라왔던 답변을 좀 허접하게 달았던 내용을
다음과 같이 처리한다.
질문내용은 두날짜간에 개월수 차이를 구하여 컬럼으로 표시하고자 하는 부분이었으나
처음 단 답글은 년차를 월에 포함하지 못하는 상황과 약간에 판단착오가 있었다.
이에 대해.. 위 기간 구하는것을 참고하여 아래와 같이 바꾸고 그 답변에 대해 알림형태로 게시판에 남겼다.
DateTime dt = new DateTime(2001, 2, 1);
DateTime dt2 = new DateTime( Math.Abs( ( new DateTime(2002, 2, 27).Subtract( dt ).Ticks ) ) );
MessageBox.Show(( ((dt2.Year-1) * 12) + ( dt2.Month ) ).ToString());
'# 3) .Net ( Vs 2008 ) > C#' 카테고리의 다른 글
암묵적인 형변환? 코드...? (0) | 2010.05.18 |
---|---|
IPC .Net ( 프로세스간 통신 ) (1) | 2010.05.12 |
VB의 Left구현하기... 확장메서드를 이용함... (0) | 2010.02.22 |
NotifyIcon에 ContextMenuStrip 2개 동적으로 바꾸기... (0) | 2010.02.12 |
ComboBox Item Binding (0) | 2010.01.26 |