#c# #datetime #silverlight
#c# #дата и время #silverlight
Вопрос:
Я создаю страницу, позволяющую создавать слот для консультаций при лекции, способ, которым я делаю, — это заполнять элемент управления button в цикле 5 раз (5 рабочих дней). Мне нужно отключить класс button got в расписании и идентифицировать кнопку с содержимым кнопки, а затем сохранить в базе данных. когда лектор нажимает на кнопку, появляется всплывающее окно с датой столбца (день) временной интервал.
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. Вы запрашиваете
DayOfWeek
перечисление? Я немного смущен вашим вопросом.2. я знаю, что кнопка предназначена для понедельника, вторника, среды, четверга и пятницы. но это пользовательская кнопка, поэтому кнопке нужно знать дату понедельника на этой неделе, вторника на этой неделе…
Ответ №1:
Поскольку 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);
}
}
Комментарии:
1. Я все еще тестирую это и сообщу вам позже о результате = D я верю, что все должно работать как по маслу. но, могу я узнать, есть ли у вас какие-либо предложения о том, как выполнить часть определения количества часов между ними, а затем разделить на каждые 30 минутные части?
2.
DateTime.Now - startOfWeekDateTime
даст вам время между «тогда» и «сейчас» в качествеTimeSpan
. Что касается разделения на 30-минутные фрагменты, я вставлю что-нибудь в ответ (Y)3. Спасибо, чувак… Моя слабость заключается в выполнении такого алгоритма @.@ ваш ответ очень помог = D