簡體   English   中英

獲取一周中某一天的可預訂日期

[英]Get bookable date of the day in week

我正在制作一個允許講座創建咨詢槽的頁面,我制作的方式是循環按鈕控制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

然后我計划使用end_time - start_time = 2小時,如果是2小時,那么08:00,08:30,09:00,09:30 4按鈕將從start_time禁用。 我創建了按鈕

        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);
       }

我創建了星期一列的按鈕,但我不能假設星期一是gettime.now() ,我可以知道如何獲得當周的日期?

由於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分鍾的塊:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM