'날짜함수'에 해당하는 글 1건

옮긴 회사가 델파이를 사용하다 보니 이전에 익숙했던 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#으로 개발하는 날이 오겠지?




WRITTEN BY
테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게

,