C# 获取一周中当天的可预订日期

C# 获取一周中当天的可预订日期,c#,datetime,silverlight,C#,Datetime,Silverlight,我正在制作一个页面,允许讲座创建咨询槽,我制作的方式是在循环中填充按钮控件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 然后我

我正在制作一个页面,允许讲座创建咨询槽,我制作的方式是在循环中填充按钮控件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从start_time开始的4个按钮将被禁用。我用

        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);
       }
string[]时隙={“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:30 PM”,“04:30 PM”,“04:30 PM”,“05:30 PM”};
对于(int i=0;i<20;i++)
{
按钮btnMonday=新按钮
{
高度=38,
宽度=256,
内容=时隙[i],
背景=新的SolidColorBrush(Color.FromArgb(0xFF,0xB1,0xB1,0xB1))
};
//设置依赖项属性
btnMonday.SetValue(Grid.ColumnProperty,0);
btnMonday.SetValue(Grid.RowProperty,i);
//将动态创建的控件添加到画布
LayoutRoot.Children.Add(btnMonday);
}

我为Monday列创建了按钮,但我不能假设Monday是
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);
    }
}
public IEnumerable GetHalfAnHourChunks(日期时间从开始到结束)
{
while(从开始到结束)
{
收益率从零开始;
startFrom=startFrom.AddMinutes(30);
}
}

您是否要查看
DayOfWeek
enum?你的问题让我有点困惑。我知道这个按钮是为星期一、星期二、星期三、星期四和星期五设计的。但这是自定义按钮,因此按钮需要知道本周星期一、本周星期二的日期……我仍在测试此按钮,稍后会让您知道结果=D我相信一切都会正常工作。但是,我可以知道你有什么建议吗?关于如何确定从那时到现在的时间间隔,你有什么建议吗。至于分成30分钟的部分,我会在答案中加入一些东西(Y)Thx dude。。。我的缺点是做这种算法@@你的回答帮助很大