Posted
Filed under .NET/C#
[C#] 기념일 계산기 - (3) 기념일 코딩
음... 마지막 포스팅이군요..... 특정 일자를 선택하면.. 그 날이 어떠한 날인가를 알려주는 방법에 대해서.. 아주 허접하게(?)... 코딩 방법을 작성하고 마무리 하도록 하겠습니다.

1. 솔루션 탐색이에서 프로젝트를 선택후.. (솔루션 '프로젝트명' 아래 있는.. 겁니다.'C#아이콘 그려진.....)마우스 오른쪽, 추가, 클래스 순으로 이동 하여 클릭합니다.
(※한 개의 솔루션에는 1개 이상의 프로젝트들이 들어 있을수 있습니다...., 그리고 더러 솔루션이 없고 프로젝트만 있는 .. 파일도 있을지도.....)
사용자 삽입 이미지

2.아래의 그림과 같이 파일명을 입력한후 추가 버튼을 누릅니다.
사용자 삽입 이미지
3. Data.cs 파일에 아래와 같이 소스를 코딩합니다.
//DateTime today = new DateTime();
    class Date
    {
        public string[] date = { "01-01", "03-01", "04-05", "05-05", "05-15", "05-18", "06-06", "12-25" };
        public string[] date_d = { "신정", "삼일절", "식목일", "어린이날", "스승의날", "5.18", "현충일", "성탄절" };
    }

4. Form1.cs(폼 코드소스)를 아래와 같이 수정해 줍니다.
using System;
using System.Windows.Forms;

namespace 기념일계산기
{
    public partial class Form1 : Form
    {
        DateTime today = new DateTime();
        
        //기념일을 위해 클래스 인스턴스화
        Date dt = new Date();
        
        public Form1()
        {
            InitializeComponent();
            today = monthCalendar1.SelectionStart;
        }

        private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e)
        {
            //for문을 돌며.. 기념일과 동일한 내용이 있나 확인합니다...
            for (int i = 0; i < dt.date.Length; i++)
            {
                //만약.. 선택한 날짜가 dt클래스내의 date배열의 i번쨰 요소에 있는 것과 동일 할 경우,
                if (monthCalendar1.SelectionStart.ToShortDateString().Substring(5, 5) == dt.date[i])
                {
                    tb_eventDay.Text = dt.date_d[i];
                    break;
                }
                else
                {
                    tb_eventDay.Text = "";
                }
            }
            //해당 날짜를 선택하면 텍스트 박스에 해당 요일이 선택되게끔 한다.
            tb_selDay.Text = monthCalendar1.SelectionRange.Start.ToShortDateString();

            //오늘 날짜로 부터 몇일이 경과 되었는지를 확인해 주도록 한다.
            tb_today.Text = (monthCalendar1.SelectionRange.Start - today).TotalDays.ToString();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            tb_date2.Text = today.AddDays(Int32.Parse(tb_date.Text)).ToLongDateString();
        }
    }
}

5. 실행해서 잘 되는지 봅니다...
사용자 삽입 이미지
위와 같은 방법으로 .. 깔끔(=허접) 하게 나마.. 기념일을 추가 할 수 있었습니다. 추 후 으용해서 음력 구하는 알고리즘 까지 적용하시게 된다면.. 이 기념일 계산기를 유용하게 쓰실 수 있을지도 모르겠습니다..ㅎㅎㅎ +_+
또한 DB와의 연동으로.. 이것저것 만들 수 도 있는데.. 그걸 살짝 응용 하여 만든게..
http://bluene.net/blog/334 이긴 합니다만, VB.NET을 이용하여 제작하였습니다만... 그럭저럭... 쓸만 할 껍니다.....ㅎㅎㅎ
2010/02/14 23:43 2010/02/14 23:43