2015-10-15 111 views
0

我必須根據日期計算星期數。這可能是簡單的,我已經這樣做了(感謝另一個SO後):計算從一個日期到另一個日期的星期數

public static int GetCurrentWeekNumber(DateTime time) 
{ 
    DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(time); 
    if (day >= DayOfWeek.Monday && day <= DayOfWeek.Wednesday) 
    { 
     time = time.AddDays(3); 
    } 
    return CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(time, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); 
} 

新的請求是不是從週一但是從週四到下週三計算週數(含稅)。任何提示?

+2

請鏈接到其他SO崗位。 –

+0

[獲取給定日期的正確週數]可能重複(http://stackoverflow.com/questions/11154673/get-the-correct-week-number-of-a-given-date) – Rik

+0

從星期二到下一個星期三,當然?那是一週8天。 –

回答

2
CultureInfo.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Tuesday; 

編輯:(感謝評論)

https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.cultureinfo(v=vs.110).aspx

CultureInfo co = new new CultureInfo("en-US", true); 
co.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Tuesday; 
+0

您將在運行時得到一個'InvalidOperationException',因爲如果您不克隆它,該實例是隻讀的。 –

+0

@TimSchmelter採取點,所以讓我們克隆它:) –

+0

它也沒有考慮到這一點:_「計算從星期二到下一個星期三(包括)的星期數」_雖然這將是一個8天的一週。我不確定OP是否真的需要它。 –

相關問題