2013-01-22 3 views
1

곧 일정표로 개발할 작은 프로그램을 만들고 C# MonthCalendar을 사용하여 연습하고 있습니다. 지금까지 텍스트 라벨에 선택된 날짜를 표시했지만, 나는 약간 고질적 인 무언가를 성취하려고합니다. 나는 그것에 대해 고심하고 있습니다.월 월 - 일요일 일정 표시

양식에 7 개의 레이블을 넣었습니다. 날짜를 클릭하면 선택한 날짜가있는 특정주의 날짜에 해당하는 7 개의 레이블이 채워지게됩니다. 누구든지이 목표를 달성하기 위해 내가해야 할 일을 제안 할 수 있습니까?

해결하려는 문제 : 내가 캘린더에서 날짜를 선택한다고 해봅시다. 예 : 22/01/1013 그래서 21부터 그 주에 모든 날짜를 표시 할 라벨 - 더이 문제를 명확히하기 위해 2012년 1월

27 : 이것은 내가 가지고 올 한 인터페이스입니다

: enter image description here

그리고 내가 지금까지 가지고있는 코드 :

public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      timer1.Enabled = true; 
     } 
     private void button1_Click(object sender, EventArgs e) 
     { 
    } 

    private void timer1_Tick(object sender, EventArgs e) 
    { 
     DateTime dt = DateTime.Now; 
     label8.Text = dt.ToString(); 
    } 

    private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e) 
    { 
     label1.Text = monthCalendar1.SelectionStart.ToString(); 
    } 
} 
+0

그렇다면이 부분의 어떤 부분을 고수하고 있습니까? – millimoose

+0

전체 주간의 날짜를 표시해야하는 부분에 붙어 있습니다. – Tacit

+1

충분히 구체적이지 않습니다. 표시 할 날짜를 알아내는 데 어려움이 있습니까? 평일을 라벨에 연결하는 방법은 무엇입니까? – millimoose

답변

2

대답의 zespri에서 나는이 answer에서 아이디어를 얻었다.

class Program 
{ 
    static void Main(string[] args) 
    { 
     DateTime t = DateTime.Now; //Your selected date from Calendar 
     t -= new TimeSpan((int)t.DayOfWeek, 0, 0, 0); 
     Console.WriteLine("\tstart: " + t.Date.ToShortDateString()); 
     Console.WriteLine("\tend: " + t.Date.AddDays(7).ToShortDateString()); 
     Console.WriteLine("\t" + new string('-', 25)); 

     for (int i = 0; i < 7; i++) 
     { 
      var d = t.AddDays(i); 
      if (d.DayOfWeek >= DayOfWeek.Monday && d.DayOfWeek <= DayOfWeek.Friday) //Range: Monday to Friday 
       Console.WriteLine(d.DayOfWeek + " : " + d); 
     } 
     Console.ReadLine(); 
    } 
} 
+0

감사하지만 winforms을 사용하고 있습니다 – Tacit

+0

어떻게합니까 나는 단지 날짜를 원하는 시간을 보여주는 것을 멈춘다. – Tacit

+0

그리고 월요일부터 시작하기를 원한다. – Tacit

2

첫째, 일주일의 첫날을 찾을 수 있습니다. this과 유사하게 할 수 있습니다. 그런 다음이 날짜부터 각 레이블에 대상 텍스트를 지정하십시오.

코드의 7 줄 (각 ​​레이블마다 하나씩)이나 배열의 서식 초기화 코드에서 레이블을 넣고 배열을 반복 할 수 있습니다. 레이블을 배열에 넣는 것은 여전히 ​​7 줄을 필요로합니다. 마지막으로 Form.Controls 또는 Form.FindControl을 사용하여 이름에 따라 루프에서 7 개의 레이블을 모두 찾을 수 있습니다.