2013-12-11 17 views
-1

я должен реализовать интерфейс, который возвращает следующую дату буднего дня после того, как дата, переданная в мне нужно использовать этот код:Определения дня недели

DiaryDate nextWeekday(DiaryDate originalDate); 

public DiaryDate(int dayOfMonth, int monthOfYear, int year) 
{ 
    DayOfMonth = dayOfMonth; 
    MonthOfYear = monthOfYear; 
    Year = year; 
} 
public int DayOfMonth 
{ 
    get; 
    set; 
} 
public int MonthOfYear 
{ 
    get; 
    set; 
} 
public int Year 
{ 
    get; 
    set; 
} 

Есть ли формула для разработки которой дата будет неделю?

+0

Нужно ли вам проводить отпуск и т.д. во внимание? – driis

+4

Не уверен в вашем вопросе, почему бы не 'DateTime.Now.AddDays (1)', что дало бы вам следующую дату ??? Или вы хотите проверить, не является ли это суббота/воскресенье. – Habib

+2

Создайте объект 'DateTime' и добавьте 1 день, пока у вас есть' суббота' или 'воскресенье'. Затем возьмите текущий день недели в это время. Если он не зациклится, у вас будет свой текущий день, если он закончит цикл, вы получите покой. Или действительно просто проверьте, есть ли сегодня суббота/воскресенье. Если да: возьмите понедельник, а завтра возьмитесь. –

ответ

0

Сначала преобразовать объект в DateTime, чтобы получить доступ ко всем инструментам, доступных через них:

DateTime date = new DateTime(originalDate.Year, originalDate.Month, originalDate.Day); 

Тогда мы можем просто добавить в день, а затем сохранить, добавив дней, а дата выходные:

date = date.AddDays(1); 
while (date.DayOfWeek == DayOfWeek.Saturday || 
    date.DayOfWeek == DayOfWeek.Sunday) 
{ 
    date = date.AddDays(1); 
} 

Тогда все, что вам нужно сделать, это преобразовать его обратно в свой собственный объект даты, если вы не можете изменить свой код, чтобы использовать вместо DateTime.

+0

Привет, ребята, это домашнее задание. Я не думаю, что мне разрешено использовать объекты даты и т. Д., Вероятно, придется использовать формулу типа «Zeller'scongruence "http://en.wikipedia.org/wiki/Zeller%27s_congruence –

+1

Тогда я предлагаю вам сделать попытку реализовать это. В следующий раз упомянем об этом и в вашем вопросе, мы не знали. –

2

Я просто скопировать из моего комментария:

Построить объект DateTime и добавить 1 день в то время как у вас есть суббота или воскресенье. Затем возьмите текущий день недели в это время. Если он не зациклится, у вас будет свой текущий день, если он закончит цикл, вы получите покой. Или действительно просто проверьте, есть ли сегодня суббота/воскресенье. Если да: взять понедельник, еще принять сегодня

var someDate = new DateTime(year, monthOfYear, dayOfMonth).AddDays(1); 
if(someDate.DayOfWeek == DayOfWeek.Saturday || someDate.DayOfWeek == DayOfWeek.Sunday) { 
    return DayOfWeek.Monday; 
} else { 
    return someDate.DayOfWeek; 
} 
Смежные вопросы