옮긴 회사가 델파이를 사용하다 보니 이전에 익숙했던 C#을 접할 기회가 거의 없다.
매번 느끼지만 각 프로그래밍언어를 옮기다 보면 변환 함수가 잘 떠오르지가 않아 애를 먹는 경우가 많다.
얼마전 프로그램에서 이번달 마지막 날짜를 구해야 하는 경우있어 델파이로 구현을 해 보다 문득 C#은 어떻게 구현을 할까 의문이 들었다. 그래서 오랫만에 C# 의 감을 느껴보고자 Visul Studio를 키고 동일한 내용의 값을 구현해 보았다.
우선 간단히 로직(?)을 설명하자면
1. 지정한 날짜 기준에서 다음달 1일의 날짜를 구한다.
2. 다음달 1일 날짜에서 -1 해준다.
- 끝 -
곧바로 이번달 마지막 날짜를 구하는 함수가 C#에서 있는지 모르겠지만 현재로서는 그냥 이렇게 생각을 해 보았다.
1. 지정한 날짜 기준에서 다음달 1일의 날짜를 구한다.
// "2016-03-01"
string sFirstDay_of_NextMonth = DateTime.Now.AddMonths(1).ToString("yyyy-MM") + "-01";
2. 다음달 1일 날짜에서 -1 해준다.
// "2016-02-29"
string sLastDay_of_ThisMonth = DateTime.Parse(sFirstDay_of_NextMonth).AddDays(-1).ToString("yyyy-MM-dd");
이런 내용이 되겠다.
자 그럼 응용해서 함수화 한다면 아래와 같이 구현할 수 있을것이다.
private void Form1_Load(object sender, EventArgs e)
{
//// "2016-03-01"
//string sFirstDay_of_NextMonth = DateTime.Now.AddMonths(1).ToString("yyyy-MM") + "-01";
//// "2016-02-29"
//string sLastDay_of_ThisMonth = DateTime.Parse(sFirstDay_of_NextMonth).AddDays(-1).ToString("yyyy-MM-dd");
string sTestData;
// "2016-02-29"
sTestData = GetLastDayOfThisMonth(DateTime.Now);
// "2017-02-28"
sTestData = GetLastDayOfThisMonth(DateTime.Parse("2017-02-12"));
}
/// <summary>
/// 지정한 달의 마지막 날짜를 구함
/// </summary>
/// <param name="dtmDate"></param>
/// <returns></returns>
private string GetLastDayOfThisMonth(DateTime dtmDate)
{
string sFirstDay_of_NextMonth = dtmDate.AddMonths(1).ToString("yyyy-MM") + "-01";
return DateTime.Parse(sFirstDay_of_NextMonth).AddDays(-1).ToString("yyyy-MM-dd");
}
2월이 들쑥날쑥 하니 예로 적당한 것 같다.
오랫만에 C#을 하니 그냥 마음이 편하다. 왠지 손에 맞는 연장을 든것처럼...
곧 C#으로 개발하는 날이 오겠지?
'020. Prigraming > 01. C#' 카테고리의 다른 글
[C#] 이미지 압축관련 (0) | 2016.08.01 |
---|---|
[C#] SMTP와 NAVER를 이용한 메일 보내기 (0) | 2016.08.01 |
[C#] DataGrid RowHeader 순번 표시 (0) | 2015.09.01 |
[C#] 오라클 클라이언트 설치 없이 접속하는 방법 (0) | 2014.08.27 |
[C#] 윈폼에서 PPT 슬라이드 제어 (0) | 2014.03.31 |
WRITTEN BY
- 테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게
,