2011-11-08 17 views
0

私は講義を作成できるようにページを作っています。私が行う方法は5回(5営業日)ループ内にボタンを押し込むという方法です。私はタイムテーブルでクラスを持っているボタンを無効にし、ボタンの内容でボタンを識別してデータベースに保存する必要があります。講師がボタンをクリックすると、列(日)+タイムスロットの日付がポップアップ表示されます。週の予約可能な日付を取得します

Data for verify and disable button from table of timetable 
    start_time -> 2011-11-08 08:00:00 
    end_time -> 2011-11-08 10:00:00 

そしてIはEND_TIMEを使用する予定 - = 2時間START_TIME、2時間あれば、8時00分、8:30、09:00、START_TIMEから9時30分、4ボタンは無効となります。私は月曜日の列のボタンを作成したが、私は月曜日がgettime.now()であると仮定することはできません

 string[] timeslot = {"08:00 AM", "08:30 AM", "09:00 AM", "09:30 AM", "10:00 AM", "10:30 AM", "11:00 AM", "11:30 AM", "12:00 PM", "12:30 PM", "01:00 PM", "01:30 PM", "02:00 PM", "02:30 PM", "03:00 PM", "03:30 PM", "04:00 PM", "04:30 PM", "05:00 PM", "05:30 PM"}; 
     for (int i = 0; i < 20; i++) 
     { 
      Button btnMonday = new Button 
            { 
             Height = 38, 
             Width = 256, 
             Content = timeslot[i], 
             Background = new SolidColorBrush(Color.FromArgb(0xFF, 0xB1, 0xB1, 0xB1)) 
            }; 
      // Sets dependency properties 
      btnMonday.SetValue(Grid.ColumnProperty, 0); 
      btnMonday.SetValue(Grid.RowProperty, i); 
      // Adds the dynamically created control to the canvas 
      LayoutRoot.Children.Add(btnMonday); 
     } 

でボタンを作成し、私は現在の曜日の日付を得ることができる方法を知っているかも?

+0

あなたは 'DayOfWeek'列挙型を求めていますか?私はあなたの質問で少し混乱しています。 – Marc

+0

私はボタンが月曜日、火曜日、水曜日、木曜日と金曜日に設計されていることを知っています。しかし、それはカスタムボタンなので、ボタンは今週の月曜日の日、今週の火曜日を知る必要があります... – 1myb

答えて

2

DayOfWeekは列挙型なので、int型にキャストすることができます。

public enum DayOfWeek 
{ 
    Sunday = 0, 
    Monday = 1, 
    Tuesday = 2, 
    Wednesday = 3, 
    Thursday = 4, 
    Friday = 5, 
    Saturday = 6, 
} 

は、その後、再び、あなたが望むことをあなたはその後、曜日を追加することができDateTime.Today

public static DateTime GetLastSunday() 
{ 
    DateTime today = DateTime.Today; 
    return today.AddDays(-((int)today.DayOfWeek)); 
} 

からその日数を取ることができ

public static DateTime GetDayOfThisWeek(DayOfWeek dayOfWeek) 
{ 
    DateTime today = DateTime.Today; 
    DateTime lastSunday = today.AddDays(-((int)today.DayOfWeek)); 
    return lastSunday.AddDays((int)dayOfWeek); 
} 

更新:

30分ぐらいnks:

public IEnumerable<DateTime> GetHalfAnHourChunks(DateTime startFrom, DateTime until) 
{ 
    while(startFrom < until) 
    { 
     yield return startFrom; 
     startFrom = startFrom.AddMinutes(30); 
    } 
} 
+0

私はまだこれをテストしています。チャーム。しかし、30分ごとに何時間に分割するのかを決める方法を提案することはありますか? – 1myb

+1

'DateTime.Now - startOfWeekDateTime'は、' TimeSpan'として時刻を返します。 30分の分割には、私は答え(Y) – Connell

+0

Thxのおかげで何かをつけるつもりだ...私の弱点はそのようなアルゴリズム@をしている@あなたの答えは多くの助けを= D – 1myb

関連する問題