Получить бронируемую дату дня в неделю - PullRequest
0 голосов
/ 08 ноября 2011

Я делаю страницу, чтобы позволить лектору создать ячейку для консультаций, я делаю так, чтобы 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(). Могу ли я узнать, как я могу получить дату для дня текущей недели?

1 Ответ

2 голосов
/ 08 ноября 2011

Поскольку 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...