2013-12-11 35 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); 

然後,我們可以只增加1天,然後不斷增加天,而日期是週末:

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