2015-03-13 157 views
-3

我正在尋找一些邏輯讓日期得到下個月的第一個星期天使用c#的給定日期。 如何使用c#獲得給定日期的下個月的第一個星期天?如何獲得給定日期的下個月的第一個星期天?

+1

您需要爲此做各種事情。我首先得到下個月第一天的DateTime。然後計算一週中的每一天(使用DayOfWeek屬性)。然後基於這兩條信息,您可以計算出本月的第一個星期天。 – 2015-03-13 06:53:07

+0

Jon Skeet評論你的問題可能很幸運:P – 2015-03-13 07:01:23

+0

你的代碼在哪裏? – Raptor 2015-03-13 07:15:26

回答

0

你沒有顯示任何的努力,但讓我們來編碼什麼Jon says一步一步;

如何獲得下個月的第一個星期天給定日期

我們稱之爲dtDateTime在你的問題中給定日期。所有月份以1作爲日期編號開始。這就是爲什麼我們可以創建一個名爲DateTimefirstDayOfNextMonth

DateTime firstDayOfNextMonth = new DateTime(dt.Year, dt.Month + 1, 1); 

現在怎麼辦?當然,我們需要檢查一下星期幾的名字,這是星期天還是不星期。到什麼時候?直到我們找到星期天的一天。這就是爲什麼我們需要重複這一天(1天,每),直到我們找到它。我們可以使用DayOfWeek enumeration作爲日期名稱。

我們在我們的代碼中將DateTime定義爲firstSundayOfNextMonth;

DateTime firstSundayOfNextMonth; 

現在重複你下週的第一天,直到我們找到一個星期天;

while (firstDayOfNextMonth.DayOfWeek != DayOfWeek.Sunday) 
{ 
    firstDayOfNextMonth = firstDayOfNextMonth.AddDays(1); 
} 

當這while聲明停止工作?是的,當我們找到第一個星期天的時候。這就是爲什麼我們需要在此循環之外將此值分配給firstSundayOfNextMonth變量。

while (firstDayOfNextMonth.DayOfWeek != DayOfWeek.Sunday) 
{ 
    firstDayOfNextMonth = firstDayOfNextMonth.AddDays(1); 
} 

firstSundayOfNextMonth = firstDayOfNextMonth; 

我們找到了。 firstSundayOfNextMonth是給定DateTime(本例中爲dt)的下個月的第一個星期日。

0

試試這個:

DateTime dt1 = new DateTime(2015, 03, 13); 
DateTime dm = dt1.AddMonths(1); 
DateTime addm = new DateTime(dm.Year,dm.Month,1); 
var nextSunday = addm.AddDays(7 - (int)addm.DayOfWeek); 

你可以把任何日期代替2015, 03, 13year,month,day

1
public static DateTime GetFirstSundayOfNextMonth(DateTime givenDate) 
{ 
    DateTime firstDayNextMonth = givenDate.AddDays(-givenDate.Day + 1).AddMonths(1); 
    int diff = 7 - (int)firstDayNextMonth.DayOfWeek; 
    return firstDayNextMonth.AddDays(diff); 
} 
+1

Hiya在那裏,雖然這可能很好地回答了這個問題,但請注意,其他用戶可能不像您那樣知識淵博。爲什麼不添加一點解釋爲什麼這個代碼工作?謝謝! – Vogel612 2015-03-13 09:18:40

+0

嗯,今天是05/04/2016 - >你今天要做的 - 當天的數字 - >上個月的最後一天 - > +1本月的第一天 - > +1個月 - >下個月的第一天。然後你計算一週中的哪一天是第一天,你需要多少天才能到達星期天,然後再添加這些天。 – Jack 2016-04-05 14:48:16

0

某一日期後,即可獲取下週一天,我發現一個簡單的方法。

​​
相關問題